diff --git a/addons/purchase_mrp/models/purchase_mrp.py b/addons/purchase_mrp/models/purchase_mrp.py
index 173b57d7d0766aeb400508fb58c92b5de7d14ead..7a899e5a5f95a400ae56bb390dab187a9e89ba8b 100644
--- a/addons/purchase_mrp/models/purchase_mrp.py
+++ b/addons/purchase_mrp/models/purchase_mrp.py
@@ -17,7 +17,7 @@ class PurchaseOrderLine(models.Model):
     def _compute_qty_received(self):
         kit_lines = self.env['purchase.order.line']
         for line in self:
-            if line.qty_received_method == 'stock_moves' and line.move_ids.filtered(lambda m: m.bom_line_id):
+            if line.qty_received_method == 'stock_moves' and line.move_ids.filtered(lambda m: m.state != 'cancel' and m.bom_line_id):
                 kit_bom = self.env['mrp.bom']._bom_find(product=line.product_id, company_id=line.company_id.id, bom_type='phantom')
                 if kit_bom:
                     moves = line.move_ids.filtered(lambda m: m.state == 'done' and not m.scrapped)
@@ -43,7 +43,7 @@ class PurchaseOrderLine(models.Model):
         if bom and bom.type == 'phantom' and 'previous_product_qty' in self.env.context:
             return self.env.context['previous_product_qty'].get(self.id, 0.0)
         return super()._get_qty_procurement()
-    
+
 class StockMove(models.Model):
     _inherit = 'stock.move'