diff --git a/rma_sale/models/sale.py b/rma_sale/models/sale.py index d2b58601..bfc14243 100644 --- a/rma_sale/models/sale.py +++ b/rma_sale/models/sale.py @@ -36,6 +36,7 @@ class SaleOrder(models.Model): { "product_id": data["product"].id, "quantity": data["quantity"], + "sale_line_id": data["sale_line_id"].id, "uom_id": data["uom"].id, "picking_id": data["picking"] and data["picking"].id, }, @@ -83,7 +84,7 @@ class SaleOrderLine(models.Model): self.ensure_one() return self.move_ids.filtered( lambda r: ( - self.product_id == r.product_id + self == r.sale_line_id and r.state == "done" and not r.scrapped and r.location_dest_id.usage == "customer" @@ -114,6 +115,7 @@ class SaleOrderLine(models.Model): "quantity": qty, "uom": move.product_uom, "picking": move.picking_id, + "sale_line_id": self, } ) else: @@ -123,6 +125,7 @@ class SaleOrderLine(models.Model): "quantity": self.qty_delivered, "uom": self.product_uom, "picking": False, + "sale_line_id": self, } ) return data diff --git a/rma_sale/views/sale_portal_template.xml b/rma_sale/views/sale_portal_template.xml index 3bd5b1c8..14d36396 100644 --- a/rma_sale/views/sale_portal_template.xml +++ b/rma_sale/views/sale_portal_template.xml @@ -100,6 +100,12 @@ t-attf-name="#{data_index}-product_id" t-att-value="data['product'].id" /> +
diff --git a/rma_sale/wizard/sale_order_rma_wizard.py b/rma_sale/wizard/sale_order_rma_wizard.py index cd0b922b..537c72e7 100644 --- a/rma_sale/wizard/sale_order_rma_wizard.py +++ b/rma_sale/wizard/sale_order_rma_wizard.py @@ -111,6 +111,7 @@ class SaleOrderLineRmaWizard(models.TransientModel): operation_id = fields.Many2one( comodel_name="rma.operation", string="Requested operation", ) + sale_line_id = fields.Many2one(comodel_name="sale.order.line",) description = fields.Text() @api.onchange("product_id") @@ -124,7 +125,8 @@ class SaleOrderLineRmaWizard(models.TransientModel): if record.picking_id: record.move_id = record.picking_id.move_lines.filtered( lambda r: ( - r.sale_line_id.product_id == record.product_id + r.sale_line_id == record.sale_line_id + and r.sale_line_id.product_id == record.product_id and r.sale_line_id.order_id == record.order_id ) )