We have scenarios where the product can be started to produce without having all the inputs in stock.
You can start producing a birthday cake (base, layers) without having cherrys because it’s the last thing you put on. When you receive the cherrys you can then finish the cake.
The actual solution in Tryton is to ignore the cherrys on assing (quantity 0), continuing with the remaing tasks, and when you want to add the cherrys, go back to waiting, create new input cherrys so you can finally finish the production.
This is done that way because, it’s the same as the shipment process, and in shipment we need to set the qty to 0 in order to recreate the shipment with the remaining quantities to send.
As in production we don’t need to set qty to 0, because we don’t recreate anything, I propose to:
Leave the inputs without stock in draft with the correct qty on Ignore, later on when we want to put the cherrys we can go back and use that draft move.
This change also makes neccesary to restrict to not beeing able to finish a production if you have inputs in draft state.
For me it is strange to start a production without having the needed components and expect to receive them.
Indeed this sounds only possible if the production process last for at least 1 day in order to expect a delivery the next day.
But indeed for production that last so long, I think they should be divided into multiple productions that produces possible partial parts. In this case you can progress in the global production as much as you can (have the components available).
I must say that we’ve also found the need that @acaubet exposes.
We generally end up telling the customer that they should not move the production to running state until they have all the goods but it’s not ideal. That happens even in companies where we split the productions per days.