diff --git a/src/backend/InvenTree/order/models.py b/src/backend/InvenTree/order/models.py index f79c615321a0..1a8124cf5c70 100644 --- a/src/backend/InvenTree/order/models.py +++ b/src/backend/InvenTree/order/models.py @@ -1161,7 +1161,8 @@ def _action_complete(self, *args, **kwargs): # Schedule pricing update for any referenced parts for line in self.lines.all(): - line.part.schedule_pricing_update(create=True) + if line.part: + line.part.schedule_pricing_update(create=True) trigger_event('salesorder.completed', id=self.pk) diff --git a/src/backend/InvenTree/part/models.py b/src/backend/InvenTree/part/models.py index b84b24f70ecc..465c7f6920f4 100644 --- a/src/backend/InvenTree/part/models.py +++ b/src/backend/InvenTree/part/models.py @@ -4509,7 +4509,8 @@ def update_pricing_after_edit(sender, instance, created, **kwargs): """Callback function when a part price break is created or updated.""" # Update part pricing *unless* we are importing data if InvenTree.ready.canAppAccessDatabase() and not InvenTree.ready.isImportingData(): - instance.part.schedule_pricing_update(create=True) + if instance.part: + instance.part.schedule_pricing_update(create=True) @receiver(post_delete, sender=BomItem, dispatch_uid='post_delete_bom_item') @@ -4525,7 +4526,8 @@ def update_pricing_after_delete(sender, instance, **kwargs): """Callback function when a part price break is deleted.""" # Update part pricing *unless* we are importing data if InvenTree.ready.canAppAccessDatabase() and not InvenTree.ready.isImportingData(): - instance.part.schedule_pricing_update(create=False) + if instance.part: + instance.part.schedule_pricing_update(create=False) class BomItemSubstitute(InvenTree.models.InvenTreeMetadataModel): diff --git a/src/backend/InvenTree/stock/models.py b/src/backend/InvenTree/stock/models.py index de8be1ce796a..3008f77970b3 100644 --- a/src/backend/InvenTree/stock/models.py +++ b/src/backend/InvenTree/stock/models.py @@ -2293,7 +2293,8 @@ def after_delete_stock_item(sender, instance: StockItem, **kwargs): ) # Schedule an update on parent part pricing - instance.part.schedule_pricing_update(create=False) + if instance.part: + instance.part.schedule_pricing_update(create=False) @receiver(post_save, sender=StockItem, dispatch_uid='stock_item_post_save_log') @@ -2312,7 +2313,8 @@ def after_save_stock_item(sender, instance: StockItem, created, **kwargs): ) # Schedule an update on parent part pricing - instance.part.schedule_pricing_update(create=True) + if instance.part: + instance.part.schedule_pricing_update(create=True) class StockItemTracking(InvenTree.models.InvenTreeModel):