[FIX] rma: multiple substitution moves

The product replacement could explode into several moves like in the
case of MRP BoM kits.

TT40194
This commit is contained in:
David
2022-10-26 16:23:53 +02:00
committed by Víctor Martínez
parent 4b4fa11993
commit e9ba2b4e9a
2 changed files with 27 additions and 23 deletions

View File

@@ -3,7 +3,7 @@
{ {
"name": "Return Merchandise Authorization Management", "name": "Return Merchandise Authorization Management",
"summary": "Return Merchandise Authorization (RMA)", "summary": "Return Merchandise Authorization (RMA)",
"version": "15.0.1.1.0", "version": "15.0.1.1.1",
"development_status": "Production/Stable", "development_status": "Production/Stable",
"category": "RMA", "category": "RMA",
"website": "https://github.com/OCA/rma", "website": "https://github.com/OCA/rma",

View File

@@ -1210,10 +1210,13 @@ class Rma(models.Model):
self._ensure_can_be_replaced() self._ensure_can_be_replaced()
moves_before = self.delivery_move_ids moves_before = self.delivery_move_ids
self._action_launch_stock_rule(scheduled_date, warehouse, product, qty, uom) self._action_launch_stock_rule(scheduled_date, warehouse, product, qty, uom)
new_move = self.delivery_move_ids - moves_before new_moves = self.delivery_move_ids - moves_before
if new_move: body = ""
self.message_post( # The product replacement could explode into several moves like in the case of
body=_( # MRP BoM Kits
for new_move in new_moves:
body += (
_(
'Replacement: Move <a href="#" data-oe-model="stock.move"' 'Replacement: Move <a href="#" data-oe-model="stock.move"'
' data-oe-id="%(move_id)d">%(move_name)s</a> (Picking <a' ' data-oe-id="%(move_id)d">%(move_name)s</a> (Picking <a'
' href="#" data-oe-model="stock.picking"' ' href="#" data-oe-model="stock.picking"'
@@ -1228,26 +1231,27 @@ class Rma(models.Model):
"picking_name": new_move.picking_id.name, "picking_name": new_move.picking_id.name,
} }
) )
+ "\n"
) )
else: self.message_post(
self.message_post( body=body
body=_( or _(
"Replacement:<br/>" "Replacement:<br/>"
'Product <a href="#" data-oe-model="product.product" ' 'Product <a href="#" data-oe-model="product.product" '
'data-oe-id="%(id)d">%(name)s</a><br/>' 'data-oe-id="%(id)d">%(name)s</a><br/>'
"Quantity %(qty)s %(uom)s<br/>" "Quantity %(qty)s %(uom)s<br/>"
"This replacement did not create a new move, but one of " "This replacement did not create a new move, but one of "
"the previously created moves was updated with this data." "the previously created moves was updated with this data."
)
% (
{
"id": product.id,
"name": product.display_name,
"qty": qty,
"uom": uom.name,
}
)
) )
% (
{
"id": product.id,
"name": product.display_name,
"qty": qty,
"uom": uom.name,
}
)
)
if self.state != "waiting_replacement": if self.state != "waiting_replacement":
self.state = "waiting_replacement" self.state = "waiting_replacement"