[FIX] stock: unreserve picking with latest scheduled date
- Create a product P with 10 units on hand - Create a SO with 5 units, validate - Create another SO with 5 units, validate - Update the quantity on hand to 8 The picking linked to the first SO as 2 units unreserved, while one would expect the unreservation on the second picking. When unreserving, sort the move lines according to the picking scheduled date. The latest schedule date comes first. opw-2233331 closes odoo/odoo#49830 X-original-commit: 41c05cbfb015407dbbf7100233999ecd154267dc Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
This commit is contained in:
@@ -563,7 +563,13 @@ class StockMoveLine(models.Model):
|
||||
('product_qty', '>', 0.0),
|
||||
('id', 'not in', ml_to_ignore.ids),
|
||||
]
|
||||
current_picking_first = lambda cand: cand.picking_id != self.move_id.picking_id
|
||||
# We take the current picking first, then the pickings with the latest scheduled date
|
||||
current_picking_first = lambda cand: (
|
||||
cand.picking_id != self.move_id.picking_id,
|
||||
-(cand.picking_id.scheduled_date or cand.move_id.date_expected).timestamp()
|
||||
if cand.picking_id or cand.move_id
|
||||
else -cand.id,
|
||||
)
|
||||
outdated_candidates = self.env['stock.move.line'].search(outdated_move_lines_domain).sorted(current_picking_first)
|
||||
|
||||
# As the move's state is not computed over the move lines, we'll have to manually
|
||||
|
||||
Reference in New Issue
Block a user