documentation/content/applications/inventory_and_mrp/manufacturing/management/subcontracting.rst
Antoine Vandevenne (anv) 250bc3ab21 [MOV] content/*: move resource files into their related page's directory
Since odoo/documentation#903, the guideline for the location of new
resource (images, downloadable files, RST includes...) files is to place
those inside the directory of the RST page that references them.

For example, if `doc1.rst` has a reference to `image.png` and to
`download.zip`, the file structure should look like this:

├── parent_doc/
│     └── doc1/
│     │     └── image.png
│     │     └── download.zip
│     └── doc1.rst
│     └── doc2.rst
├── parent_doc.rst

Before this commit, most of the resource files were still located inside
'media' directories holding all the resource files referenced by RST
pages located at the same level as these directories. In the example
above, a single 'media' directory would hold all the resource files
referenced by both `doc1.rst` and `doc2.rst`. Doing so prevented us from
figuring out easily which resource file was referenced by which RST page
and, thus, lead to unused resource files piling up in the repository. It
also made it more complicated to define codeowners regex rules because a
team could not simply be assigned to `/some_page.*` but needed to be
assigned to both `/some_page\.rst` and to the location of 'media'.

In order to help new content writers figure out the guideline when
taking examples from other RST pages, this commit retroactively applies
the guideline to existing resource files and 'media' directories. The
left-over resource files that are not referenced by any RST page are
removed.

task-2497965

Part-of: odoo/documentation#2066
2022-05-20 14:48:37 +02:00

214 lines
7.5 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

==============================
Subcontract your Manufacturing
==============================
Outsourcing a portion or all of your companys manufacturing needs
is not easy. To make it work correctly, you have to:
- Manage the inventory of raw materials at your subcontractor
- Ship raw material to your subcontractors, at the right time
- Control incoming goods quality
- Control subcontractors bills
Here is an example of subcontracting the manufacturing of “C”, which is
produced out of raw materials “A” and “B”.
.. image:: subcontracting/subcontracting_01.png
:align: center
:alt:
With its MRP subcontracting feature, Odoo helps you handle this flow easily.
Configuration
=============
To use the subcontracting feature, go to :menuselection:`Manufacturing
--> Configuration --> Settings` and tick the box *Subcontracting*.
.. image:: subcontracting/sbc_1.png
:align: center
:alt:
To define if a product must be subcontracted, use a *Bill of Materials
(BoM)* of type *Subcontracting*.
To create a new *BoM*, go to :menuselection:`Manufacturing --> Products -->
Bill of Materials` and hit create. Then, list the components
your subcontractor needs to manufacture the product. For costing
purposes, you might want to register all the components, even the ones
that are sourced directly from the subcontractor.
Once you have set the *BoM Type* to *Subcontracting*, specify one or
several subcontractors.
.. image:: subcontracting/sbc_2.png
:align: center
:alt:
Basic Subcontracting Flow
=========================
To let your subcontractor know how many products you need, create and
send them purchase orders (PO). To do so, go to the *Purchase* app and
create a new purchase order. Be sure to send the PO to a vendor that is
defined as a subcontractor on the *BoM* of these products.
.. image:: subcontracting/subcontracting_04.png
:align: center
:alt:
Once the *PO* is validated (1), a pending receipt is created. When the
products are received, validate the receipt (2), with the actual
quantity received. As a result, Odoo does the following things for you:
- Consumes the respective components at the subcontractors location, based on the *BoM* and your input (3);
- Produces the finished goods at the subcontractors location (4);
- Moves products from that subcontractors location to YourCompany
via the validated receipt (5).
.. note::
The *PO* is optional. If you create a receipt manually, with the right
subcontractor, Odoo still performs all the moves. This can be useful if
the subcontractor does not bill a fixed price per item, but rather the time
and materials used.
Inventory Valuation
===================
The cost of the manufactured product “C” is defined as:
**C = A + B + s**
With:
- **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
subcontractors location is not needed, simply include the cost of
**B** in the subcontractors 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