In Odoo’s Manufacturing module, Work Order (WO) statuses within a Manufacturing Order (MO) can sometimes be unexpected.
The statuses primarily depend on component availability and the dependencies between Work Orders. The two key settings that influence them are:
- Manufacturing Readiness
- Operation Dependencies
Manufacturing Readiness
It primarily affects the Manufacturing Order Readiness Status in the Manufacturing Order. The two available options are:
- When all components are available: Manufacturing Order is ready when all components are in stock.
- When components for 1st operation are available: The Manufacturing Order is ready when the components for the first operation are available.
Odoo uses the MO Readiness status value to determine Work Order statuses. As a result, a Work Order can be marked as "Ready" even if not all components are available, only because the first required component is in stock.
Operation Dependencies
Operation Dependencies is the second setting that affects Work Order statuses. Depending on its value, Odoo applies different logic for dependencies between Work Orders:
- Disabled: Dependencies between Work Orders are determined by their sorting order.
- Enabled: The dependencies set on the operations are enforced.
What Does This Mean in Practice?
Let’s review the four possible cases based on the Manufacturing Readiness and Operation Dependencies settings.
In all cases, we start from a scenario where components are initially unavailable. Therefore, the first status represents the Work Order’s status before any components become available.
Case 1: Manufacturing Readiness is set to "When All Components Are Available," and Operation Dependency is not enabled.
In this case, the system will enforce operation dependency based on the order of operations. The first Work Order will have the status "Waiting for Components," while the other Work Orders will be "Waiting for Another WO."
Once all components are available, the first WO will change to "Ready," while the others will remain in "Waiting for Another WO."
The statuses will update sequentially to "Ready" as each preceding WO is completed.
Case 2: Manufacturing Readiness is set to "When All Components Are Available," and Operation Dependency is enabled.
In this case, all Work Orders that do not depend on another order will have the status "Waiting for Components," while dependent orders will have the status "Waiting for Another WO."
The status of independent WOs will change to "Ready" once all components are available. However, dependent WOs will remain in "Waiting for Another WO" until the Work Order they depend on is completed.
Case 3: Manufacturing Readiness is set to "When Components for the 1st Operation Are Available," and Operation Dependency is not enabled.
In this case, the first WO will have the status "Waiting for Components," while all other WOs will be in "Waiting for Another Operation."
Once the components for the first operation are available, its status will change to "Ready," while all other WOs will remain "Waiting for Another WO."
When the first WO is completed, the next WO will change to "Ready" even if its components are not available.
In this setup, Odoo does not check if the components for each individual WO are available. Instead, it relies on the Manufacturing Order Readiness Status, which is set to "Ready" once the components for the first WO are available.
Case 4: Manufacturing Readiness is set to "When Components for the 1st Operation Are Available," and Operation Dependency is enabled.
In this case all WOs without dependencies will have the status "Waiting for Components." While WOs with dependencies will have the status "Waiting for Another WO."
Once the components for the first operation are available, the status of independent WOs will change to "Ready", even if some components for certain operations are still missing.
However, WOs that depend on another WO will remain in "Waiting for Another WO" until the dependent operation is completed. Once completed, those WOs will also change to “Ready” or “Waiting for Components,” depending on whether the components for the first unfinished WO are available.
Final Thoughts
When determining Work Order statuses, Odoo does not take actual component availability into account. Instead, it relies on the general Manufacturing Order Readiness Status.
It would be beneficial if Odoo refined this logic in the future by considering component availability at the Work Order level rather than relying solely on the overall Manufacturing Order Readiness Status. This would result in more accurate and reliable Work Order statuses.