diff --git a/lib/inventree/part.dart b/lib/inventree/part.dart index 3510d50f..18c49cc2 100644 --- a/lib/inventree/part.dart +++ b/lib/inventree/part.dart @@ -254,8 +254,6 @@ class InvenTreePart extends InvenTreeModel { return null; } - int get supplierCount => getInt("suppliers", backup: 0); - // Request supplier parts for this part Future> getSupplierParts() async { List _supplierParts = []; diff --git a/lib/widget/part/part_detail.dart b/lib/widget/part/part_detail.dart index b38d9e8a..c2975c4c 100644 --- a/lib/widget/part/part_detail.dart +++ b/lib/widget/part/part_detail.dart @@ -10,6 +10,7 @@ import "package:inventree/l10.dart"; import "package:inventree/helpers.dart"; import "package:inventree/inventree/bom.dart"; +import "package:inventree/inventree/company.dart"; import "package:inventree/inventree/part.dart"; import "package:inventree/inventree/stock.dart"; import "package:inventree/labels.dart"; @@ -61,6 +62,7 @@ class _PartDisplayState extends RefreshableState { int bomCount = 0; int usedInCount = 0; int variantCount = 0; + int supplierPartCount = 0; InvenTreePartPricing? partPricing; InvenTreePartRequirements? partRequirements; @@ -307,6 +309,19 @@ class _PartDisplayState extends RefreshableState { }); } }); + + // Request the number of supplier parts + if (part.isPurchaseable) { + InvenTreeSupplierPart().count(filters: {"part": part.pk.toString()}).then( + (int value) { + if (mounted) { + setState(() { + supplierPartCount = value; + }); + } + }, + ); + } } void _editPartDialog(BuildContext context) { @@ -690,12 +705,12 @@ class _PartDisplayState extends RefreshableState { } if (part.isPurchaseable) { - if (part.supplierCount > 0) { + if (supplierPartCount > 0) { tiles.add( ListTile( title: Text(L10().suppliers), leading: Icon(TablerIcons.building_factory, color: COLOR_ACTION), - trailing: LinkIcon(text: "${part.supplierCount}"), + trailing: LinkIcon(text: "${supplierPartCount}"), onTap: () { Navigator.push( context,