From be711464ffb45e38bc19d90b259d51aa7abac530 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 9 Jan 2026 11:01:03 +1100 Subject: [PATCH] Bug fix for stock entry calculation (#11103) - Additional unit testing --- src/backend/InvenTree/part/models.py | 2 +- src/backend/InvenTree/stock/tests.py | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/backend/InvenTree/part/models.py b/src/backend/InvenTree/part/models.py index 4a8c640a40..e1a4342f29 100644 --- a/src/backend/InvenTree/part/models.py +++ b/src/backend/InvenTree/part/models.py @@ -1819,7 +1819,7 @@ class Part( if include_external is False: # Exclude stock entries which are not 'internal' - query = query.filter(external=False) + query = query.filter(location__external=False) if location: locations = location.get_descendants(include_self=True) diff --git a/src/backend/InvenTree/stock/tests.py b/src/backend/InvenTree/stock/tests.py index 514e8f0ec3..b3a86d31e3 100644 --- a/src/backend/InvenTree/stock/tests.py +++ b/src/backend/InvenTree/stock/tests.py @@ -867,6 +867,16 @@ class VariantTest(StockTestBase): self.assertEqual(green.stock_entries(include_variants=False).count(), 0) self.assertEqual(green.stock_entries().count(), 3) + # Test with an "external" location + entry = green.stock_entries().first() + entry.location = StockLocation.objects.create( + name='External Location', description='An external location', external=True + ) + entry.save() + + self.assertEqual(green.stock_entries(include_external=True).count(), 3) + self.assertEqual(green.stock_entries(include_external=False).count(), 2) + def test_serial_numbers(self): """Test serial number functionality for variant / template parts.""" InvenTreeSetting.set_setting('SERIAL_NUMBER_GLOBALLY_UNIQUE', False, self.user)