diff --git a/src/backend/InvenTree/order/models.py b/src/backend/InvenTree/order/models.py index 0d27512971..7b6a1f3cb5 100644 --- a/src/backend/InvenTree/order/models.py +++ b/src/backend/InvenTree/order/models.py @@ -780,7 +780,7 @@ class PurchaseOrder(TotalPriceMixin, Order): @property def is_complete(self): """Return True if all line items have been received.""" - return self.lines.count() > 0 and self.pending_line_items().count() == 0 + return self.pending_line_items().count() == 0 @transaction.atomic def receive_line_item( @@ -1076,9 +1076,7 @@ class SalesOrder(TotalPriceMixin, Order): def is_completed(self): """Check if this order is "shipped" (all line items delivered).""" - return self.lines.count() > 0 and all( - line.is_completed() for line in self.lines.all() - ) + return all(line.is_completed() for line in self.lines.all()) def can_complete(self, raise_error=False, allow_incomplete_lines=False): """Test if this SalesOrder can be completed. diff --git a/src/backend/InvenTree/order/test_api.py b/src/backend/InvenTree/order/test_api.py index 7599442a84..f635ac8622 100644 --- a/src/backend/InvenTree/order/test_api.py +++ b/src/backend/InvenTree/order/test_api.py @@ -522,6 +522,11 @@ class PurchaseOrderTest(OrderTest): self.assignRole('purchase_order.add') + # Add a line item + sp = SupplierPart.objects.filter(supplier=po.supplier).first() + + models.PurchaseOrderLineItem.objects.create(part=sp, order=po, quantity=100) + # Should fail due to incomplete lines response = self.post(url, {}, expected_code=400)