details:   https://code.tryton.org/tryton/commit/93146bd22394
branch:    8.0
user:      Cédric Krier <[email protected]>
date:      Fri Oct 02 10:48:48 2026 +0200
description:
        Support phantom input and output when setting moves to production

        Closes #14908
        (grafted from 38aba6163a892562f07fdfce1ac10901638ca8c7)
diffstat:

 modules/production/production.py |  18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

diffs (32 lines):

diff -r f5eaf861e4bc -r 93146bd22394 modules/production/production.py
--- a/modules/production/production.py  Wed Sep 30 18:30:11 2026 +0200
+++ b/modules/production/production.py  Fri Oct 02 10:48:48 2026 +0200
@@ -516,18 +516,20 @@
             for input_ in production.bom.inputs:
                 quantity = input_.compute_quantity(factor)
                 product = input_.product
-                move = production._move(
-                    'input', product, input_.unit, quantity)
-                move.planned_date = input_date
-                to_save.append(input_.prepare_move(production, move))
+                for line, quantity in input_.lines_for_quantity(quantity):
+                    move = production._move(
+                        'input', product, input_.unit, quantity)
+                    move.planned_date = input_date
+                    to_save.append(input_.prepare_move(production, move))
 
             for output in production.bom.outputs:
                 quantity = output.compute_quantity(factor)
                 product = output.product
-                move = production._move(
-                    'output', product, output.unit, quantity)
-                move.planned_date = output_date
-                to_save.append(output.prepare_move(production, move))
+                for line, quantity in output.lines_for_quantity(quantity):
+                    move = production._move(
+                        'output', product, output.unit, quantity)
+                    move.planned_date = output_date
+                    to_save.append(output.prepare_move(production, move))
         Move.save(to_save)
 
     @classmethod

Reply via email to