[IMP] Manufacturing: Subcontracting overview
closes odoo/documentation#9031
X-original-commit: 68dd997055
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
@ -1,214 +1,105 @@
|
|||||||
==============================
|
=======================
|
||||||
Subcontract your Manufacturing
|
Subcontracting overview
|
||||||
==============================
|
=======================
|
||||||
|
|
||||||
Outsourcing a portion or all of your company’s manufacturing needs
|
.. |BoM| replace:: :abbr:`BoM (Bill of Materials)`
|
||||||
is not easy. To make it work correctly, you have to:
|
|
||||||
|
|
||||||
- Manage the inventory of raw materials at your subcontractor
|
In manufacturing, *subcontracting* is the process of a company engaging a third-party manufacturer,
|
||||||
- Ship raw material to your subcontractors, at the right time
|
or subcontractor, to manufacture products that are then sold by the contracting company.
|
||||||
- Control incoming goods quality
|
|
||||||
- Control subcontractors bills
|
|
||||||
|
|
||||||
Here is an example of subcontracting the manufacturing of “C”, which is
|
Subcontracting provides a variety of benefits for both the contracting company and the
|
||||||
produced out of raw materials “A” and “B”.
|
subcontractor.
|
||||||
|
|
||||||
.. image:: subcontracting/subcontracting_01.png
|
For the contracting company, subcontracting allows them to sell a wide variety of manufactured
|
||||||
:align: center
|
products, without having to worry about investing in and maintaining the equipment and labor
|
||||||
:alt:
|
required to handle the manufacturing themselves.
|
||||||
|
|
||||||
With its MRP subcontracting feature, Odoo helps you handle this flow easily.
|
This helps contracting companies stay flexible throughout economic cycles, as they can easily
|
||||||
|
increase or decrease their engagements with subcontractors, as necessitated by the current moment.
|
||||||
|
It also means they are able to focus on tasks they excel at, while delegating more specialized work
|
||||||
|
to subcontractors.
|
||||||
|
|
||||||
|
On the other side of the relationship, subcontracting allows subcontractors to specialize in more
|
||||||
|
niche areas of production, which might not be as profitable outside the bounds of a subcontracting
|
||||||
|
engagement. In certain arrangements, it also provides them with the flexibility to choose which
|
||||||
|
projects they accept or decline, and how many they work on at any given time.
|
||||||
|
|
||||||
|
In Odoo, companies can configure their subcontracting workflows based on a variety of different
|
||||||
|
factors, including how components are sourced, and what happens to finished products once they are
|
||||||
|
manufactured.
|
||||||
|
|
||||||
Configuration
|
Configuration
|
||||||
=============
|
=============
|
||||||
|
|
||||||
To use the subcontracting feature, go to :menuselection:`Manufacturing
|
To enable subcontracting in Odoo, navigate to :menuselection:`Manufacturing app --> Configuration
|
||||||
--> Configuration --> Settings` and tick the box *Subcontracting*.
|
--> Settings`, and tick the checkbox next to the :guilabel:`Subcontracting` setting, under the
|
||||||
|
:guilabel:`Operations` heading. Then, click :guilabel:`Save`.
|
||||||
|
|
||||||
.. image:: subcontracting/sbc_1.png
|
.. image:: subcontracting/subcontracting-setting.png
|
||||||
:align: center
|
:align: center
|
||||||
:alt:
|
:alt: The Subcontracting setting in the manufacturing app.
|
||||||
|
|
||||||
To define if a product must be subcontracted, use a *Bill of Materials
|
With subcontracting enabled, a few different features become available in Odoo:
|
||||||
(BoM)* of type *Subcontracting*.
|
|
||||||
|
|
||||||
To create a new *BoM*, go to :menuselection:`Manufacturing --> Products -->
|
- On bills of materials (BoMs), the *BoM Type* field now includes a *Subcontracting* option.
|
||||||
Bill of Materials` and hit create. Then, list the components
|
Enabling the *Subcontracting* |BoM| type designates the |BoM|'s product as a subcontracted
|
||||||
your subcontractor needs to manufacture the product. For costing
|
product, which means Odoo knows that it is produced by a subcontractor, and not by the company
|
||||||
purposes, you might want to register all the components, even the ones
|
that owns the Odoo database.
|
||||||
that are sourced directly from the subcontractor.
|
- Two subcontracting routes become available in the *Inventory* app, and can be assigned to specific
|
||||||
|
products, on the *Inventory* tab of their product pages:
|
||||||
|
|
||||||
Once you have set the *BoM Type* to *Subcontracting*, specify one or
|
- *Resupply Subcontractor on Order*
|
||||||
several subcontractors.
|
- *Dropship Subcontractor on Order*
|
||||||
|
|
||||||
.. image:: subcontracting/sbc_2.png
|
Subcontracting workflows
|
||||||
:align: center
|
========================
|
||||||
:alt:
|
|
||||||
|
|
||||||
Basic Subcontracting Flow
|
In Odoo, there are three subcontracting workflows, the main difference between them being *how* the
|
||||||
=========================
|
subcontractor obtains the necessary components:
|
||||||
|
|
||||||
To let your subcontractor know how many products you need, create and
|
- In the *basic* subcontracting workflow, the subcontractor is fully responsible for obtaining the
|
||||||
send them purchase orders (PO). To do so, go to the *Purchase* app and
|
components. This workflow is outlined in the :doc:`subcontracting_basic` documentation.
|
||||||
create a new purchase order. Be sure to send the PO to a vendor that is
|
- In the *Resupply Subcontractor on Order* workflow, the contracting company sends the components
|
||||||
defined as a subcontractor on the *BoM* of these products.
|
from their warehouse to the subcontractor. This workflow is outlined in the
|
||||||
|
:doc:`subcontracting_resupply` documentation.
|
||||||
|
- In the *Dropship Subcontractor on Order* workflow, the contracting company purchases the
|
||||||
|
components from a vendor, and has them delivered directly to the subcontractor. This workflow is
|
||||||
|
outlined in the :doc:`subcontracting_dropship` documentation.
|
||||||
|
|
||||||
.. image:: subcontracting/subcontracting_04.png
|
In addition to how a subcontractor obtains components, it is also necessary to consider why a
|
||||||
:align: center
|
product is being subcontracted, as well as what happens to products once they are manufactured by
|
||||||
:alt:
|
the subcontractor.
|
||||||
|
|
||||||
Once the *PO* is validated (1), a pending receipt is created. When the
|
In terms of why a product is being subcontracted, the two main reasons are to fulfill a customer
|
||||||
products are received, validate the receipt (2), with the actual
|
order, or to replenish the quantity of stock on-hand.
|
||||||
quantity received. As a result, Odoo does the following things for you:
|
|
||||||
|
|
||||||
- Consumes the respective components at the subcontractor’s location, based on the *BoM* and your input (3);
|
In terms of what happens to products once they are manufactured, they can either be shipped to the
|
||||||
|
contracting company, or dropshipped directly to an end customer.
|
||||||
|
|
||||||
- Produces the finished goods at the subcontractor’s location (4);
|
Each of the three subcontracting workflows described above can be configured to facilitate any of
|
||||||
|
these possibilities, and the methods for doing so are outlined in their respective documentation.
|
||||||
|
|
||||||
- Moves products from that subcontractor’s location to YourCompany
|
Subcontracted product valuation
|
||||||
via the validated receipt (5).
|
===============================
|
||||||
|
|
||||||
|
The valuation of a subcontracted product depends upon a few different variables:
|
||||||
|
|
||||||
.. note::
|
- The cost of the required components, if provided by the contracting company; from here on referred
|
||||||
The *PO* is optional. If you create a receipt manually, with the right
|
to as `C`.
|
||||||
subcontractor, Odoo still performs all the moves. This can be useful if
|
- The price paid to the subcontractor for the service of manufacturing the subcontracted product;
|
||||||
the subcontractor does not bill a fixed price per item, but rather the time
|
from here on referred to as `M`.
|
||||||
and materials used.
|
- The cost of shipping components to the subcontractor, and having them shipped back to the
|
||||||
|
contracting company; from here on referred to as `S`.
|
||||||
|
- The cost of dropshipping, if the components are shipped by the subcontractor to the end customer;
|
||||||
|
from here on referred to as `D`.
|
||||||
|
- Any other associated costs, like import taxes, etc.; from here on referred to as `x`.
|
||||||
|
|
||||||
Inventory Valuation
|
Therefore, the total valuation of a subcontracted product (`P`) can be represented by the following
|
||||||
===================
|
equation:
|
||||||
|
|
||||||
The cost of the manufactured product “C” is defined as:
|
.. math::
|
||||||
|
P = C + M + S + D + x
|
||||||
|
|
||||||
**C = A + B + s**
|
It is important to note that not every subcontracted product valuation will include all of these
|
||||||
|
variables. For example, if the product is not dropshipped to the end customer, then there is no need
|
||||||
With:
|
to factor in the cost of dropshipping.
|
||||||
|
|
||||||
- **A**: Cost of raw materials coming from YourCompany;
|
|
||||||
|
|
||||||
- **B**: Cost of raw materials sourced directly from the
|
|
||||||
subcontractor;
|
|
||||||
|
|
||||||
- **s**: Cost of the subcontracted service.
|
|
||||||
|
|
||||||
Sending raw materials to your subcontractors (**A**) does not impact
|
|
||||||
the inventory valuation, as the components are still valued as part of
|
|
||||||
your stock. This is managed by making the *Subcontracting Location* an
|
|
||||||
*Internal Location*.
|
|
||||||
|
|
||||||
Then, the vendor price set on the product C form has to be what has to
|
|
||||||
be paid to the subcontractor for his parts and service time: **B +
|
|
||||||
s**. The product cost has to be: **A + B + s**, how much the
|
|
||||||
product is valued in the accounting.
|
|
||||||
|
|
||||||
Finally, the subcontractor bill then matches the purchase order, with
|
|
||||||
the proposed price coming from the finished products C.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
If managing the replenishment of raw materials **B** at your
|
|
||||||
subcontractor’s location is not needed, simply include the cost of
|
|
||||||
**B** in the subcontractor’s price **s** and remove the products
|
|
||||||
*B* from the *BoM*.
|
|
||||||
|
|
||||||
Traceability
|
|
||||||
============
|
|
||||||
|
|
||||||
In case the received products from the subcontractor contain tracked
|
|
||||||
components, their serial or lot numbers need to be specified during the
|
|
||||||
receipt.
|
|
||||||
|
|
||||||
In that case, on the receipt of the subcontracted product, a *Record Components*
|
|
||||||
button appears. Click on it to open a dialog box and record the serial/lot numbers of
|
|
||||||
the components. If the finished product is also tracked, its serial/lot number can
|
|
||||||
be registered here too.
|
|
||||||
|
|
||||||
.. image:: subcontracting/sbc_3.png
|
|
||||||
:align: center
|
|
||||||
:alt:
|
|
||||||
|
|
||||||
For audit purposes, it is possible to check the lot numbers recorded on
|
|
||||||
a receipt by using the icon on the right of the finished products:
|
|
||||||
|
|
||||||
.. image:: subcontracting/sbc_4.png
|
|
||||||
:align: center
|
|
||||||
:alt:
|
|
||||||
|
|
||||||
Also note that in case flexible consumption has been selected on the subcontracted
|
|
||||||
BOM for a non-tracked product, the record components option will also appear
|
|
||||||
optionally on each move line, if you want to register more or less component consumption
|
|
||||||
at your subcontracting location, when receiving your final product.
|
|
||||||
|
|
||||||
.. image:: subcontracting/sbc_5.png
|
|
||||||
:align: center
|
|
||||||
:alt:
|
|
||||||
|
|
||||||
As you can see, the reception of both of these non-tracked products can either be executed
|
|
||||||
by selecting the 'Set Quantities' Option or via the move line hamburger menus.
|
|
||||||
|
|
||||||
Automate Replenishment of Subcontractors
|
|
||||||
========================================
|
|
||||||
|
|
||||||
There are two ways to automate the supply of raw materials to your
|
|
||||||
subcontractors when purchasing the final product. The chosen method
|
|
||||||
depends on whether or not you want the materials to transit through your
|
|
||||||
warehouse. Both of these methods are described as pull style mechanisms as
|
|
||||||
their trigger is the inital PO to the subcontractor, which creates a need
|
|
||||||
at the subcontracting location, for raw material.
|
|
||||||
|
|
||||||
If you are supplying your subcontractor with raw material from your own warehouse,
|
|
||||||
you must activate the 'Resupply Subcontractor on Order' route as shown
|
|
||||||
below. If this is a component that you buy from a vendor, the buy route
|
|
||||||
should also be activated.
|
|
||||||
|
|
||||||
|
|
||||||
.. image:: subcontracting/sbc_6.png
|
|
||||||
:align: center
|
|
||||||
:alt:
|
|
||||||
|
|
||||||
|
|
||||||
Now, if you want your vendor to resupply your subcontractor directly, you
|
|
||||||
must choose the 'Dropship Subcontractor on Order' option instead. In order
|
|
||||||
for this option to be active on the product form, you must first activate the
|
|
||||||
dropship option from :menuselection:`Purchase --> Configuration --> Settings -->
|
|
||||||
Dropshipping`.
|
|
||||||
Once the PO to the subcontractor is validated, this route will create a dropship
|
|
||||||
RFQ from your vendor to that subcontractor. You then just need to review and validate it.
|
|
||||||
|
|
||||||
|
|
||||||
.. image:: subcontracting/sbc_7.png
|
|
||||||
:align: center
|
|
||||||
:alt:
|
|
||||||
|
|
||||||
Note that the buy route is not selected in this case, as the dropship route is
|
|
||||||
a buy route already.
|
|
||||||
|
|
||||||
Finally, if you want to track the stock of these raw materials at your subcontracting
|
|
||||||
location(s), then you must activate *Multi-locations* in :menuselection:`Inventory -->
|
|
||||||
Configuration --> Settings --> Storage locations`.
|
|
||||||
|
|
||||||
From the location form, you are then able to access the Current Stock.
|
|
||||||
|
|
||||||
.. image:: subcontracting/sbc_8.png
|
|
||||||
:align: center
|
|
||||||
:alt:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Manual Replenishment
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
You can also choose to replenish your subcontractors manually.
|
|
||||||
|
|
||||||
If you want to send components to your subcontractor at your own convenience,
|
|
||||||
select the 'Resupply Subcontractor' Operation Type from the *Inventory* Module,
|
|
||||||
and create a picking, specifying to which subcontractor you are delivering to.
|
|
||||||
|
|
||||||
.. image:: subcontracting/sbc_9.png
|
|
||||||
:align: center
|
|
||||||
:alt:
|
|
||||||
|
|
||||||
Alternatively, you can also manually ask your vendor to resupply your subcontractor
|
|
||||||
by creating a dropship type PO, with your subcontractor set as the delivery address.
|
|
||||||
|
|
||||||
.. image:: subcontracting/sbc_10.png
|
|
||||||
:align: center
|
|
||||||
|
Before Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 8.8 KiB |
Before Width: | Height: | Size: 10 KiB |