From 702a7d1e436b7fb12e8caeb0a871814fd9e31e41 Mon Sep 17 00:00:00 2001 From: sbejaoui Date: Thu, 29 Aug 2024 17:39:24 +0200 Subject: [PATCH] [FIX] rma: same procurement group for reception and delivery The procurement group created for reception was not being correctly assigned to the RMA, resulting in a different group being generated for the delivery. This fix ensures that the same procurement group is used for both operations. --- rma/models/rma.py | 1 + rma/tests/test_rma.py | 15 +++++++++++++++ rma_sale/models/rma.py | 12 ------------ 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/rma/models/rma.py b/rma/models/rma.py index 5921848e9..344bd8be8 100644 --- a/rma/models/rma.py +++ b/rma/models/rma.py @@ -712,6 +712,7 @@ def _prepare_reception_procurements(self): group = rma.procurement_group_id if not group: group = group_model.create(rma._prepare_procurement_group_vals()) + rma.procurement_group_id = group procurements.append( group_model.Procurement( rma.product_id, diff --git a/rma/tests/test_rma.py b/rma/tests/test_rma.py index 7b798fcb8..83248889d 100644 --- a/rma/tests/test_rma.py +++ b/rma/tests/test_rma.py @@ -848,3 +848,18 @@ def test_autoconfirm_email(self): ) self.assertTrue(rma.name in mail_receipt.subject) self.assertTrue("products received" in mail_receipt.subject) + + def test_same_procurement_group_for_reception_and_delivery(self): + rma = self._create_confirm_receive(self.partner, self.product, 10, self.rma_loc) + self.assertTrue(rma.procurement_group_id) + delivery_form = Form( + self.env["rma.delivery.wizard"].with_context( + active_ids=rma.ids, + rma_delivery_type="return", + ) + ) + delivery_form.product_uom_qty = 2 + delivery_wizard = delivery_form.save() + delivery_wizard.action_deliver() + self.assertEqual(rma.delivery_move_ids.group_id, rma.procurement_group_id) + self.assertEqual(rma.delivery_move_ids.group_id, rma.reception_move_id.group_id) diff --git a/rma_sale/models/rma.py b/rma_sale/models/rma.py index 7662ba5fa..b07b71517 100644 --- a/rma_sale/models/rma.py +++ b/rma_sale/models/rma.py @@ -163,15 +163,3 @@ def _prepare_refund_line_vals(self): ): vals["sale_line_ids"] = [(4, line.id)] return vals - - def _prepare_procurement_group_vals(self): - vals = super()._prepare_procurement_group_vals() - if not self.env.context.get("ignore_rma_sale_order") and self.order_id: - vals["sale_id"] = self.order_id.id - return vals - - def _prepare_delivery_procurements(self, scheduled_date=None, qty=None, uom=None): - self = self.with_context(ignore_rma_sale_order=True) - return super()._prepare_delivery_procurements( - scheduled_date=scheduled_date, qty=qty, uom=uom - )