mirror of
https://github.com/inventree/inventree-app.git
synced 2025-12-03 18:59:50 +00:00
Display supplier part stock (#717)
* Display supplier part stock * dart format * Update release notes
This commit is contained in:
@@ -1,7 +1,8 @@
|
|||||||
### 0.21.0 - November 2025
|
### 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
|
### 0.20.2 - November 2025
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -225,6 +225,10 @@ class InvenTreeSupplierPart extends InvenTreeModel {
|
|||||||
|
|
||||||
int get partId => getInt("part");
|
int get partId => getInt("part");
|
||||||
|
|
||||||
|
double get inStock => getDouble("in_stock");
|
||||||
|
|
||||||
|
double get onOrder => getDouble("on_order");
|
||||||
|
|
||||||
String get partImage =>
|
String get partImage =>
|
||||||
(jsondata["part_detail"]?["thumbnail"] ?? InvenTreeAPI.staticThumb)
|
(jsondata["part_detail"]?["thumbnail"] ?? InvenTreeAPI.staticThumb)
|
||||||
as String;
|
as String;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import "package:flutter/material.dart";
|
import "package:flutter/material.dart";
|
||||||
import "package:flutter_speed_dial/flutter_speed_dial.dart";
|
import "package:flutter_speed_dial/flutter_speed_dial.dart";
|
||||||
import "package:flutter_tabler_icons/flutter_tabler_icons.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/widget/link_icon.dart";
|
||||||
|
|
||||||
import "package:inventree/app_colors.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/refreshable_state.dart";
|
||||||
import "package:inventree/widget/snacks.dart";
|
import "package:inventree/widget/snacks.dart";
|
||||||
import "package:inventree/widget/company/manufacturer_part_detail.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
|
* 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
|
// Supplier details
|
||||||
tiles.add(
|
tiles.add(
|
||||||
ListTile(
|
ListTile(
|
||||||
@@ -196,7 +220,7 @@ class _SupplierPartDisplayState
|
|||||||
|
|
||||||
tiles.add(
|
tiles.add(
|
||||||
ListTile(
|
ListTile(
|
||||||
title: Text(L10().manufacturerPartNumber),
|
title: Text(L10().manufacturerPart),
|
||||||
subtitle: Text(widget.supplierPart.MPN),
|
subtitle: Text(widget.supplierPart.MPN),
|
||||||
leading: Icon(TablerIcons.hash, color: COLOR_ACTION),
|
leading: Icon(TablerIcons.hash, color: COLOR_ACTION),
|
||||||
trailing: LinkIcon(),
|
trailing: LinkIcon(),
|
||||||
|
|||||||
Reference in New Issue
Block a user