Ir al contenido
Menú
Se marcó esta pregunta
1 Responder
942 Vistas

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
Descartar
Mejor respuesta

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
Descartar
Autor

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.

Publicaciones relacionadas Respuestas Vistas Actividad
2
jul 25
288
2
jun 25
1602
2
ago 24
4101
1
mar 24
1891
2
jun 21
3058