[ADD] Manufacturing: Resupply subcontractor
closes odoo/documentation#8727
X-original-commit: 935f03d0aa
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
This commit is contained in:
parent
969177f12a
commit
579048ce2c
@ -9,6 +9,7 @@ Workflows
|
||||
|
||||
workflows/subcontracting
|
||||
workflows/subcontracting_dropship
|
||||
workflows/subcontracting_resupply
|
||||
workflows/use_mps
|
||||
workflows/work_center_time_off
|
||||
workflows/scrap_manufacturing
|
||||
|
@ -0,0 +1,279 @@
|
||||
======================
|
||||
Resupply subcontractor
|
||||
======================
|
||||
|
||||
.. |SO| replace:: :abbr:`SO (Sales Order)`
|
||||
.. |PO| replace:: :abbr:`PO (Purchase Order)`
|
||||
.. |POs| replace:: :abbr:`PO (Purchase Orders)`
|
||||
.. |BoM| replace:: :abbr:`BoM (Bill of Materials)`
|
||||
|
||||
In manufacturing, subcontracting is the process of a company engaging a third-party manufacturer, or
|
||||
subcontractor, to manufacture products that are then sold by the contracting company.
|
||||
|
||||
In Odoo, the *Resupply Subcontractor on Order* route is used to deliver the necessary components for
|
||||
a subcontracted product to the subcontractor, each time a purchase order (PO) for that product is
|
||||
confirmed.
|
||||
|
||||
The subcontractor then uses the components to manufacture the desired product, before shipping it
|
||||
back to the contracting company, or dropshipping it to the end customer.
|
||||
|
||||
.. important::
|
||||
It is necessary to understand the differences between the *Resupply Subcontractor on Order* and
|
||||
the *Dropship Subcontractor on Order* routes.
|
||||
|
||||
While both routes are used to supply a subcontractor with the components required for
|
||||
manufacturing a product, they differ in how the components are sourced.
|
||||
|
||||
When using *Resupply Subcontractor on Order*, components are shipped from the warehouse of the
|
||||
contracting company.
|
||||
|
||||
When using *Dropship Subcontractor on Order*, components are purchased from a vendor and shipped
|
||||
directly to the subcontractor.
|
||||
|
||||
The choice of which route to use depends upon the specific requirements of the subcontracting
|
||||
company and their subcontractors.
|
||||
|
||||
See the :doc:`subcontracting_dropship` documentation for a full overview of the *Dropship
|
||||
Subcontractor on Order* route.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
To use the *Resupply Subcontractor on Order* route, navigate to :menuselection:`Manufacturing app
|
||||
--> Configuration --> Settings`, and enable the checkbox next to :guilabel:`Subcontracting`, under
|
||||
the :guilabel:`Operations` heading.
|
||||
|
||||
Once the *Subcontracting* setting is enabled, it is also necessary to properly configure the
|
||||
subcontracted product, the product's bill of materials (BoM), and the components listed on the
|
||||
|BoM|.
|
||||
|
||||
.. _manufacturing/workflows/subcontracting_resupply/product-config:
|
||||
|
||||
Configure product
|
||||
-----------------
|
||||
|
||||
To configure a product for the *Resupply Subcontractor on Order* route, navigate to
|
||||
:menuselection:`Inventory app --> Products --> Products`, and select a product, or create a new one
|
||||
by clicking :guilabel:`New`.
|
||||
|
||||
Select the :guilabel:`Purchase` tab, and add the product's subcontractor as a vendor by clicking
|
||||
:guilabel:`Add a line`, selecting the subcontractor in the :guilabel:`Vendor` drop-down menu, and
|
||||
entering a price in the :guilabel:`Price` field.
|
||||
|
||||
.. note::
|
||||
The value entered in the :guilabel:`Price` field on the :guilabel:`Purchase` tab of the of the
|
||||
subcontracted product's page is the amount paid to the subcontractor for the manufacturing of the
|
||||
product.
|
||||
|
||||
This does not represent the total cost of the product, which includes other elements, like the
|
||||
cost of the product's components.
|
||||
|
||||
Then, click on the :guilabel:`Inventory` tab to configure a route that determines what happens to
|
||||
the finished product, once it has been manufactured by the subcontractor.
|
||||
|
||||
If the finished product is shipped back to the contracting company, make sure that the
|
||||
:guilabel:`Buy` route is selected. In addition, select the :guilabel:`Replenish on Order (MTO)`
|
||||
route to automatically create a |PO| for the product upon confirmation of a sales order (SO), unless
|
||||
there is enough stock on-hand to fulfill the |SO|.
|
||||
|
||||
If the finished product is shipped directly to the customer by the subcontractor, make sure that
|
||||
only the :guilabel:`Dropship` route is selected.
|
||||
|
||||
Configure BoM
|
||||
-------------
|
||||
|
||||
To configure a |BoM| for the *Resupply Subcontractor on Order* route, click the :guilabel:`Bill of
|
||||
Materials` smart button on the product's page, and select the |BoM|.
|
||||
|
||||
Alternatively, navigate to :menuselection:`Manufacturing app --> Products --> Bills of Materials`,
|
||||
and select the |BoM| for the subcontracted product.
|
||||
|
||||
.. seealso::
|
||||
For a full overview of |BoM| configuration, see the :doc:`Bill of materials
|
||||
<../basic_setup/bill_configuration>` documentation.
|
||||
|
||||
In the :guilabel:`BoM Type` field, select the :guilabel:`Subcontracting` option. Then, add one or
|
||||
more subcontractors in the :guilabel:`Subcontractors` field that appears below.
|
||||
|
||||
.. image:: subcontracting_resupply/bom-type.png
|
||||
:align: center
|
||||
:alt: The "BoM Type" field on a BoM, configured to manufacture the product using subcontracting.
|
||||
|
||||
Finally, make sure that all necessary components are specified on the :guilabel:`Components` tab. To
|
||||
add a new component, click :guilabel:`Add a line`, select the component in the :guilabel:`Component`
|
||||
drop-down menu, and specify the required quantity in the :guilabel:`Quantity` field.
|
||||
|
||||
Configure components
|
||||
--------------------
|
||||
|
||||
To configure components for the *Resupply Subcontractor on Order* route, navigate to each component
|
||||
from the |BoM| by selecting the component's name in the :guilabel:`Components` tab, and clicking the
|
||||
:guilabel:`➡️ (right arrow)` button to the right of the name.
|
||||
|
||||
Alternatively, navigate to each component by going to :menuselection:`Inventory app --> Products -->
|
||||
Products`, and selecting the component.
|
||||
|
||||
On the component product form, click on the :guilabel:`Inventory` tab and select the
|
||||
:guilabel:`Resupply Subcontractor on Order` route in the :guilabel:`Routes` section.
|
||||
|
||||
Repeat the process for every component that must be sent to the subcontractor.
|
||||
|
||||
Resupply subcontractor on order workflow
|
||||
========================================
|
||||
|
||||
The resupply subcontractor on order workflow consists of up to five steps:
|
||||
|
||||
#. Create an |SO| for the subcontracted product; doing so creates a |PO| to purchase the product
|
||||
from the subcontractor.
|
||||
#. Confirm the |PO| created in the previous step, or create a new |PO|; doing so creates a *Resupply
|
||||
Subcontractor* order, as well as a receipt order or a dropship order.
|
||||
#. Process the *Resupply Subcontractor* order once components for the subcontracted product have
|
||||
been sent to the subcontractor.
|
||||
#. Process the receipt once the subcontractor has finished manufacturing the subcontracted product,
|
||||
and shipped it back to the contracting company **OR** process the dropship order to ship the
|
||||
product directly to the customer.
|
||||
#. If the workflow was started by creating an |SO|, and the finished product is not dropshipped to
|
||||
the end customer, process the delivery order once the product is shipped to the customer.
|
||||
|
||||
The specific number of steps depends on the reason that the subcontracted product is being purchased
|
||||
from the subcontractor.
|
||||
|
||||
If the reason is to fulfill a specific customer order, the process starts with creating an |SO|, and
|
||||
ends with delivering the product to the customer, or having the subcontractor dropship it to them.
|
||||
|
||||
If the reason is to increase the quantity of stock on-hand, the process starts with creating a |PO|,
|
||||
and ends with receiving the product into inventory.
|
||||
|
||||
.. important::
|
||||
|
||||
While the *Resupply Subcontractor on Order* route can be used to automatically resupply a
|
||||
subcontractor upon confirmation of a |PO|, it is also possible to create a resupply order
|
||||
manually. This workflow is useful when it is necessary to resupply the subcontractor without
|
||||
creating a |PO|.
|
||||
|
||||
To resupply a subcontractor manually, navigate to the :menuselection:`Inventory` app, and click
|
||||
on the :guilabel:`Resupply Subcontractor` card. Create a new *Resupply Subcontractor* order by
|
||||
clicking :guilabel:`New`.
|
||||
|
||||
In the :guilabel:`Delivery Address` field, select the subcontractor to whom the components should
|
||||
be sent.
|
||||
|
||||
Then, add each component to the :guilabel:`Operations` tab by clicking :guilabel:`Add a line`,
|
||||
selecting the component in the :guilabel:`Product` drop-down field, and specifying a quantity in
|
||||
the :guilabel:`Demand` field.
|
||||
|
||||
Finally, click :guilabel:`Mark as Todo` to register the order. Once the components have been sent
|
||||
to the subcontractor, click :guilabel:`Validate` to confirm that the order has been sent.
|
||||
|
||||
Create SO
|
||||
---------
|
||||
|
||||
It is only necessary to complete this step if the product is being purchased from the subcontractor
|
||||
to fulfill a customer need. If the product is being purchased to increase the quantity of stock
|
||||
on-hand, move on to the next step.
|
||||
|
||||
To create a new |SO|, navigate to :menuselection:`Sales app --> Orders --> Orders`, and click
|
||||
:guilabel:`New`.
|
||||
|
||||
Select the customer in the :guilabel:`Customer` drop-down menu. Then, click :guilabel:`Add a
|
||||
product` on the :guilabel:`Order Lines` tab, select a subcontracted product in the
|
||||
:guilabel:`Product` drop-down menu, and enter a quantity in the :guilabel:`Quantity` field.
|
||||
|
||||
Click :guilabel:`Confirm` to confirm the |SO|, at which point a :guilabel:`Purchase` smart button
|
||||
appears at the top of the page. This opens the |PO| created to purchase the subcontracted product
|
||||
from the subcontractor.
|
||||
|
||||
.. note::
|
||||
An |SO| for the product only creates a |PO| if the *Replenish on Order (MTO)* route is enabled on
|
||||
the product's page, **and** there is not enough stock of the product on-hand to fulfill the |SO|.
|
||||
|
||||
If there is enough stock on-hand, confirming an |SO| for the product instead creates a delivery
|
||||
order, because Odoo assumes that the |SO| is fulfilled using the stock in the warehouse.
|
||||
|
||||
This is not the case for subcontracted products that are dropshipped to the end customer. In that
|
||||
case, a |PO| is **always** created, even if there is enough stock on-hand.
|
||||
|
||||
Process PO
|
||||
----------
|
||||
|
||||
If a |PO| was created in the previous step, navigate to :guilabel:`Purchase app --> Orders -->
|
||||
Purchase Orders`, and select the |PO|. Then, click :guilabel:`Confirm Order` to confirm it.
|
||||
|
||||
If a |PO| was not created in the previous step, do so now by navigating to :menuselection:`Purchase
|
||||
app --> Orders --> Purchase Orders`, and clicking :guilabel:`New`.
|
||||
|
||||
Begin filling out the |PO| by selecting a subcontractor from the :guilabel:`Vendor` drop-down menu.
|
||||
In the :guilabel:`Products` tab, click :guilabel:`Add a product` to create a new product line.
|
||||
Select a subcontracted product in the :guilabel:`Product` field, and enter the quantity in the
|
||||
:guilabel:`Quantity` field. Finally, click :guilabel:`Confirm Order` to confirm the |PO|.
|
||||
|
||||
When a |PO| is confirmed for a product that requires resupplying a subcontractor with components, a
|
||||
receipt or dropship order is automatically created, and can be accessed from the corresponding
|
||||
:guilabel:`Receipt` or :guilabel:`Dropship` smart button that appears at the top of the |PO|.
|
||||
|
||||
In addition, a *Resupply Subcontractor* order is created to ship the required components to the
|
||||
subcontractor. This order can also be accessed from the |PO|, by clicking the :guilabel:`Resupply`
|
||||
smart button at the top of the page.
|
||||
|
||||
.. figure:: subcontracting_resupply/subcontractor-po.png
|
||||
:align: center
|
||||
:alt: A PO for a *Resupply Subcontractor on Order* product, with Resupply and Receipt smart
|
||||
buttons at the top of the page.
|
||||
|
||||
A PO for a *Resupply Subcontractor on Order* product, with Resupply and Receipt smart buttons at
|
||||
the top of the page.
|
||||
|
||||
Process Resupply Subcontractor order
|
||||
------------------------------------
|
||||
|
||||
Once the subcontracted product's components have been sent to the subcontractor, navigate to
|
||||
:menuselection:`Purchase app --> Orders --> Purchase Orders`, and select the |PO|.
|
||||
|
||||
Click the :guilabel:`Resupply` smart button at the top of the screen to open the *Resupply
|
||||
Subcontractor* order, and click :guilabel:`Validate` to confirm that the components have been sent
|
||||
to the subcontractor.
|
||||
|
||||
Alternatively, navigate to the :menuselection:`Inventory` app, click the :guilabel:`# To Process`
|
||||
button on the :guilabel:`Resupply Subcontractor` card, and select the *Resupply Subcontractor*
|
||||
order. Then, click :guilabel:`Validate` to confirm that the components have been sent to the
|
||||
subcontractor.
|
||||
|
||||
Process receipt or dropship order
|
||||
---------------------------------
|
||||
|
||||
Once the subcontractor has finished manufacturing the product, they either ship it to the
|
||||
contracting company, or dropship it to the end customer, depending on how the product was
|
||||
:ref:`configured <manufacturing/workflows/subcontracting_resupply/product-config>`.
|
||||
|
||||
Process receipt
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
If the subcontractor ships the finished product to the contracting company, once it has been
|
||||
received, navigate to :menuselection:`Purchase app --> Orders --> Purchase Orders`, and select the
|
||||
|PO|.
|
||||
|
||||
Click the :guilabel:`Receive Products` button at the top of the |PO|, or the :guilabel:`Receipt`
|
||||
smart button at the top of the page, to open the receipt. Then, click :guilabel:`Validate` at the
|
||||
top of the receipt to enter the product into inventory.
|
||||
|
||||
Process dropship order
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If the subcontractor dropships the product, once they have sent it, navigate to
|
||||
:menuselection:`Purchase app --> Orders --> Purchase Orders`, and select the |PO|.
|
||||
|
||||
Select the :guilabel:`Dropship` smart button at the top of the page to open the dropship order, and
|
||||
click :guilabel:`Validate` at the top of the order to confirm that the product has been sent to the
|
||||
customer.
|
||||
|
||||
Process delivery order
|
||||
----------------------
|
||||
|
||||
If the subcontracting workflow was started by a customer |SO|, and the finished product was **NOT**
|
||||
dropshipped to the customer, but rather delivered to the contracting company, it is necessary to
|
||||
ship the product to the customer, and process the delivery order.
|
||||
|
||||
Once the product has been shipped to the customer, navigate to the :menuselection:`Sales` app, and
|
||||
select the |SO|. Select the :guilabel:`Delivery` smart button at the top of the page to open the
|
||||
delivery order, and click :guilabel:`Validate` on the order to confirm that the product has been
|
||||
shipped to the customer.
|
Binary file not shown.
After Width: | Height: | Size: 3.0 KiB |
Binary file not shown.
After Width: | Height: | Size: 34 KiB |
Loading…
Reference in New Issue
Block a user