Skip to Content
Menu
This question has been flagged
1 Reply
936 Views

Hello...

I have a multi-step BoM with three operations.


If I 'register production' for less that the MO in the shop floor in operation 1, Odoo automatically creates a backorder.


Under the same workflow in operation 2 and 3, Odoo does not automatically create a backorder and asks me upon 'Producing All' in the MO.


What's going on?


This question was asked here and not answered: https://www.odoo.com/forum/help-1/automatic-backorders-created-in-shop-floor-254367



Avatar
Discard
Best Answer

Hi, 

We've just stumbled unto the same issue.

I've looked through the code and the record_production() method of mrp.workorder doesn't have a check to see how the operation type is configured for backorder or to ask the user if they want to create a backorder. It just does whenever it is the first WO started in a MO and qty_producing < qty_remaining.

if float_compare(self.qty_producing, self.qty_remaining, precision_rounding=self.product_uom_id.rounding) == -1 and self.is_first_started_wo:

Only way to change the behavior would be to make a custom module.

Avatar
Discard
Author

Thanks for taking the time to comment. Did you implement it? How'd it work for you?

From Odoo's point of view, this is a feature and not a bug.

I pushed this question to a support ticket. Here's what I got back from nikp@odoo.com

According to Odoo standards, backorders are generated only when a manufacturing order is planned, and a portion of the product quantity is registered before initiating any operations. If the production process is already underway and the product quantity is adjusted during the ongoing operation, a backorder will not be created for the remaining quantity at that time. Instead, the backorder is created only after the entire manufacturing order is completed. This functionality is in line with Odoo's standard behavior.

Note: none of this is documented.

From my 2 cents, backorders should happen any step.

From what I understand, all WOs share the same register production step data. So, by registering production in 1 WO, you do it for all WO. it is possible to overwrite it from subsequent WOs.
I was actually having the opposite problem. I didn't want any backorder to be generated from the WO, as our processes are not able to produce precise and predictable quantities.
My guess would be that removing the self.is_first_started_wo would allow any WO to create a backorder, but that might create duplicates if it's triggered on every WO in the MO.

Related Posts Replies Views Activity
2
Jul 25
277
2
Jun 25
1595
2
Aug 24
4085
1
Mar 24
1887
2
Jun 21
3051