From 6707f89019db8bf2168bef75538208f560662d91 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 13 Nov 2025 23:54:03 +1100 Subject: [PATCH] Display supplier part stock (#717) * Display supplier part stock * dart format * Update release notes --- assets/release_notes.md | 3 ++- lib/inventree/company.dart | 4 +++ lib/widget/company/supplier_part_detail.dart | 26 +++++++++++++++++++- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/assets/release_notes.md b/assets/release_notes.md index b1c2f958..413d34ae 100644 --- a/assets/release_notes.md +++ b/assets/release_notes.md @@ -1,7 +1,8 @@ ### 0.21.0 - November 2025 --- -- Display default stock location in part detail page +- Display default stock location in Part detail page +- Display stock information in SupplierPart detail page ### 0.20.2 - November 2025 --- diff --git a/lib/inventree/company.dart b/lib/inventree/company.dart index f9f6b426..a2a3f21d 100644 --- a/lib/inventree/company.dart +++ b/lib/inventree/company.dart @@ -225,6 +225,10 @@ class InvenTreeSupplierPart extends InvenTreeModel { int get partId => getInt("part"); + double get inStock => getDouble("in_stock"); + + double get onOrder => getDouble("on_order"); + String get partImage => (jsondata["part_detail"]?["thumbnail"] ?? InvenTreeAPI.staticThumb) as String; diff --git a/lib/widget/company/supplier_part_detail.dart b/lib/widget/company/supplier_part_detail.dart index b2a965fc..77e29ab4 100644 --- a/lib/widget/company/supplier_part_detail.dart +++ b/lib/widget/company/supplier_part_detail.dart @@ -1,6 +1,7 @@ import "package:flutter/material.dart"; import "package:flutter_speed_dial/flutter_speed_dial.dart"; import "package:flutter_tabler_icons/flutter_tabler_icons.dart"; +import "package:inventree/helpers.dart"; import "package:inventree/widget/link_icon.dart"; import "package:inventree/app_colors.dart"; @@ -15,6 +16,7 @@ import "package:inventree/widget/progress.dart"; import "package:inventree/widget/refreshable_state.dart"; import "package:inventree/widget/snacks.dart"; import "package:inventree/widget/company/manufacturer_part_detail.dart"; +import "package:inventree/widget/stock/stock_list.dart"; /* * Detail widget for viewing a single SupplierPart instance @@ -142,6 +144,28 @@ class _SupplierPartDisplayState ); } + // Stock levels associated with this SupplierPart + tiles.add( + ListTile( + title: Text(L10().availableStock), + leading: Icon(TablerIcons.packages), + trailing: LinkIcon( + text: simpleNumberString(widget.supplierPart.inStock), + ), + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => StockItemList({ + "in_stock": "true", + "supplier_part": widget.supplierPart.pkString, + }), + ), + ); + }, + ), + ); + // Supplier details tiles.add( ListTile( @@ -196,7 +220,7 @@ class _SupplierPartDisplayState tiles.add( ListTile( - title: Text(L10().manufacturerPartNumber), + title: Text(L10().manufacturerPart), subtitle: Text(widget.supplierPart.MPN), leading: Icon(TablerIcons.hash, color: COLOR_ACTION), trailing: LinkIcon(),