-
Notifications
You must be signed in to change notification settings - Fork 10.3k
[IMP] MRP: Subcontracting lead times #14668
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 18.0
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,6 +4,9 @@ Basic subcontracting lead times | |
|
||
.. |PO| replace:: :abbr:`PO (Purchase Order)` | ||
.. |RfQ| replace:: :abbr:`RfQ (Request for Quotation)` | ||
.. |MOs| replace:: :abbr:`MOs (Manufacturing Orders)` | ||
.. |MO| replace:: :abbr:`MOs (Manufacturing Order)` | ||
.. |MTO| replace:: :abbr:`MTO (Make to Order)` | ||
|
||
In Odoo, lead times are used to predict how long it takes to complete a certain action. For example, | ||
a *delivery lead time* can be set for a purchased product, which specifies the number of days it | ||
|
@@ -20,8 +23,8 @@ contracting company to better predict the delivery dates of subcontracted produc | |
Unforeseen circumstances can impact the completion of these actions, which means that lead times | ||
should not be viewed as guarantees. | ||
|
||
Configuration | ||
============= | ||
Lead times for subcontracting | ||
============================= | ||
|
||
When using the :doc:`basic subcontracting <subcontracting_basic>` workflow to manufacture a product, | ||
a company is not responsible for supplying the subcontractor with the necessary components. This | ||
|
@@ -46,13 +49,125 @@ Once the subcontractor has been added, enter the number of days it takes them to | |
deliver the product, in the :guilabel:`Delivery Lead Time` column. | ||
|
||
.. image:: basic_subcontracting_lead_times/delivery-lead-time.png | ||
:align: center | ||
:alt: The Delivery Lead Time field for a subcontractor, on the Purchase tab of a product page. | ||
|
||
.. note:: | ||
Multiple subcontractors can be added to the :guilabel:`Purchase` tab on a product's page, and a | ||
different :guilabel:`Delivery Lead Time` can be set for each. | ||
|
||
Customer lead time | ||
------------------ | ||
|
||
For subcontracted products, the customer lead time must account for all the stages involved, not | ||
just the subcontractor's production. It must always be longer than the combined total of the | ||
following: | ||
|
||
- Component delivery time: the time required for all necessary materials or components to reach the | ||
subcontractor, whether shipped by the business or procured directly by the subcontractor. | ||
- Subcontractor production time: the time the subcontractor needs to manufacture or assemble the | ||
product once the materials are available. | ||
- Delivery to the business: the time required to ship the finished product from the subcontractor | ||
back to the business that requested it. | ||
- In-house manufacturing time: if the subcontracted product is only one part of a larger assembly, | ||
this includes the time needed for the business to complete its own in-house production. | ||
- Delivery to the customer: the time required for the business to ship the final product to the end | ||
customer. | ||
|
||
This ensures that the subcontractor has sufficient time to receive all the necessary materials, and | ||
complete the production before the final delivery date. | ||
|
||
.. seealso:: | ||
- For flexibility and quality control in raw materials, see :doc:`subcontracting_resupply`. | ||
- To shorten the delivery-to-customer timeline, see :doc:`subcontracting_dropship`. | ||
|
||
Purchase security lead time | ||
--------------------------- | ||
|
||
The purchase security lead time is a buffer that adds extra days to the expected delivery time of | ||
purchased products. Its purpose is to protect against unforeseen delays in receiving shipments from | ||
vendors. | ||
|
||
This lead time adds a margin of error to the subcontractor's delivery lead time. This is a general | ||
setting and applies to all products that are purchased or subcontracted. | ||
|
||
.. example:: | ||
If a subcontractor ships the finished product through a carrier, such as UPS or FedEx, and the | ||
carrier experiences unexpected delays, the Purchase Security Lead Time ensures that Odoo still | ||
plans the purchase order early enough to reduce the risk of late delivery. | ||
|
||
Days to purchase | ||
---------------- | ||
|
||
The Days to Purchase Lead Time defines the time between sending a |RfQ| and validating the |PO|. | ||
|
||
In a subcontracting context, this period represents: | ||
|
||
The time it takes for the subcontractor to confirm they can accept the work (i.e., when they approve | ||
the |RfQ| in Odoo). | ||
|
||
The time needed to prepare the components that will be sent to the subcontractor, so they are ready | ||
by the time production begins. | ||
|
||
Once the subcontractor approves the |RfQ|, it is safe for the company to validate the |RfQ| and | ||
convert it into a |PO|. | ||
|
||
This is a general setting in Odoo, meaning only one value can be configured for the entire company. | ||
It applies to all subcontracted products, but not to directly purchased products. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm pretty sure it applies to both subcontracted and purchased products. Just curious whether Magdalena told you otherwise? |
||
|
||
Manufacturing security lead time | ||
-------------------------------- | ||
|
||
In a subcontracting flow, products configured with |MTO| do not generate a Manufacturing Order in | ||
Odoo. Instead, Odoo creates a |PO| to the subcontractor. The subcontractor's production is managed | ||
outside of Odoo, but lead times are still important for scheduling. | ||
|
||
- Manufacturing Lead Time: This field represents the subcontractor's production lead time (the time | ||
the subcontractor needs to manufacture the product once they have all the necessary components). | ||
- Manufacturing Security Lead Time: This setting applies **only** to in-house manufacturing. It does | ||
not buffer subcontractor production. However, if a subcontracted product is used as a component in | ||
an in-house Manufacturing Order, then manufacturing security lead time applies to that downstream | ||
in-house process. | ||
Comment on lines
+120
to
+129
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. After reading this, I still have a lingering question My main confusion is: if no MO is created in this flow, how do these manufacturing lead times actually get applied? In other words, if we’re asking users to set manufacturing lead times for subcontracted products, how does the MTO process use that data to notify them about planning deadlines or scheduling constraints? Could you clarify this point more explicitly in the doc? I think it'll be helpful for the readers! |
||
|
||
For products configured with |MTO|, Odoo calculates scheduling as follows: | ||
|
||
.. code-block:: | ||
|
||
PO Scheduled Date (subcontractor delivery) = Delivery Order Scheduled Date | ||
- Vendor Lead Time (subcontractor) | ||
- Purchase Security Lead Time | ||
|
||
How lead times affect scheduling | ||
-------------------------------- | ||
|
||
- Component Lead Time: the longest component lead time determines how early Odoo triggers the |PO| | ||
to ensure all materials are ready for the subcontractor. | ||
- Vendor Lead Time (subcontractor): set on the subcontractor's vendor record. This defines how long | ||
it takes for the subcontractor to deliver the finished product once they receive the |PO|. | ||
- Purchase Security Lead Time: a general buffer that shifts the |PO| creation date earlier, | ||
protecting against potential vendor or shipping delays. | ||
- Manufacturing Security Lead Time: only applies if the subcontracted product is later used in an | ||
in-house |MO|, where it adds a buffer to internal production scheduling. | ||
|
||
.. example:: | ||
Stealthy Wood subcontracts the product *Desk Combination* with the following lead times: | ||
|
||
- Longest component lead time: **5 days** (*Drawer Black*) | ||
- Subcontractor (Vendor) lead time: **3 days** | ||
- Purchase Security Lead Time: **2 days** | ||
|
||
In this scenario: | ||
|
||
- Odoo schedules the PO for *Desk Combination* based on the 5-day component lead time. | ||
- The |PO| is created **2 days earlier** than the calculated date due to the purchase security | ||
lead time. | ||
- The expected delivery date from the subcontractor is **3 days** after the |PO| date, reflecting | ||
the subcontractor's vendor lead time. | ||
- If *Desk Combination* is used in a downstream in-house |MO|, any additional manufacturing | ||
security lead time would apply to that in-house operation. | ||
|
||
This example shows how each lead time contributes to scheduling, rather than simply summing them | ||
into a single customer lead time. | ||
Comment on lines
+160
to
+169
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Jess, I still need some clarification here.
Right now, the way the sentence is written—“how each lead time contributes to scheduling”—makes it sound like both items are components that need to be gathered at the company for in-house manufacturing. That isn’t clear in the text. Can you rewrite so the roles of each component are explicit?
|
||
|
||
Lead time workflow | ||
================== | ||
|
||
|
@@ -85,17 +200,39 @@ contracting company. | |
As a result, Mike's Bikes sets a delivery lead time of five days for tricycles manufactured by | ||
Bike Friends: three days for manufacturing, plus two days for delivery. | ||
|
||
On May 3rd, Mike's Bikes confirms a |PO| to purchase one tricycle from Bike Friends. | ||
On September 24th, Mike's Bikes confirms a |PO| to purchase one tricycle from Bike Friends. | ||
|
||
The :guilabel:`Expected Arrival` date listed on the |PO| is May 8th, five days after the | ||
The :guilabel:`Expected Arrival` date listed on the |PO| is September 29th, five days after the | ||
:guilabel:`Confirmation Date`. | ||
|
||
.. image:: basic_subcontracting_lead_times/expected-arrival.png | ||
:align: center | ||
:alt: The Expected Arrival date on a PO for a subcontracted product. | ||
|
||
Bike Friends begins manufacturing the tricycle on May 3rd — the day that the |PO| is confirmed — | ||
and finishes on May 6th, three days later. | ||
|
||
The tricycle is then shipped to Mike's Bikes the same day, and they receive it on May 8th, two | ||
days later. | ||
jero-odoo marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
Subcontracting portal | ||
===================== | ||
jero-odoo marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
The *Subcontracting Portal* feature allows subcontractors to record the components they have used | ||
for a subcontracted product. This provides greater visibility and accuracy when managing | ||
subcontracted |MOs|. | ||
|
||
To allow subcontractors access to the portal, navigate to the :menuselection:`Contacts` app, and | ||
open a contact record. Then click the :icon:`fa-cog` :guilabel:`(Actions)` icon, and select | ||
:guilabel:`Grant portal access`. | ||
jero-odoo marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
.. warning:: | ||
Only users who are in the :ref:`group <access-rights/groups>` *Extra Rights/Contact Creation* can | ||
grant portal access. | ||
|
||
From there, click :guilabel:`Grant Access` next to the name of the appropriate contact. | ||
|
||
.. image:: basic_subcontracting_lead_times/portal-access.png | ||
:alt: The portal access management pop-up window. | ||
|
||
The contact receives an email invitation with instructions on how to access the portal and setup | ||
their password. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
kind of seems like these two items are bullet points?