diff --git a/modules/sale_supply_production/sale.py b/modules/sale_supply_production/sale.py index f2d3003eff..a25e33dd84 100644 --- a/modules/sale_supply_production/sale.py +++ b/modules/sale_supply_production/sale.py @@ -89,7 +89,7 @@ class Line(metaclass=PoolMeta): available_qty = Uom.compute_qty( product.default_uom, available_qty, self.unit, round=False) - if quantity < available_qty: + if quantity <= available_qty: product_quantities[product] -= Uom.compute_qty( self.unit, quantity, product.default_uom, round=False) return diff --git a/modules/sale_supply_production/tests/scenario_sale_supply_production_stock_first.rst b/modules/sale_supply_production/tests/scenario_sale_supply_production_stock_first.rst index b256d55312..0243d1eca6 100644 --- a/modules/sale_supply_production/tests/scenario_sale_supply_production_stock_first.rst +++ b/modules/sale_supply_production/tests/scenario_sale_supply_production_stock_first.rst @@ -104,3 +104,21 @@ Sale 4 products with production request:: >>> move, = line.moves >>> move.state 'staging' + +Sale remaining 2 products without production request:: + + >>> sale = Sale() + >>> sale.party = customer + >>> line = sale.lines.new() + >>> line.product = product + >>> line.quantity = 2 + >>> sale.click('quote') + >>> sale.click('confirm') + >>> sale.state + 'processing' + >>> line, = sale.lines + >>> len(line.productions) + 0 + >>> move, = line.moves + >>> move.state + 'draft'