2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-06-13 02:35:27 +00:00

Show used in assembly list (#209)

* Update default list filters for BomItem

* Display "usedIn" count for part detail view

* Improve BillOfMaterials widget to display "used in" parts

* Update release notes
This commit is contained in:
Oliver
2022-09-10 14:06:58 +10:00
committed by GitHub
parent c25175ac54
commit 7fc109e0c2
4 changed files with 93 additions and 15 deletions

View File

@ -4,10 +4,12 @@ import "package:font_awesome_flutter/font_awesome_flutter.dart";
import "package:inventree/api.dart";
import "package:inventree/app_colors.dart";
import "package:inventree/inventree/stock.dart";
import "package:inventree/l10.dart";
import "package:inventree/helpers.dart";
import "package:inventree/inventree/bom.dart";
import "package:inventree/inventree/part.dart";
import "package:inventree/inventree/stock.dart";
import "package:inventree/widget/attachment_widget.dart";
import "package:inventree/widget/bom_list.dart";
@ -49,6 +51,8 @@ class _PartDisplayState extends RefreshableState<PartDetailWidget> {
int bomCount = 0;
int usedInCount = 0;
int variantCount = 0;
@override
@ -154,6 +158,19 @@ class _PartDisplayState extends RefreshableState<PartDetailWidget> {
}
});
// Request number of "used in" parts
InvenTreeBomItem().count(
filters: {
"uses": part.pk.toString(),
}
).then((int value) {
if (mounted) {
setState(() {
usedInCount = value;
});
}
});
// Request the number of variant items
InvenTreePart().count(
filters: {
@ -415,6 +432,27 @@ class _PartDisplayState extends RefreshableState<PartDetailWidget> {
}
}
if (part.isComponent) {
if (usedInCount > 0) {
tiles.add(
ListTile(
title: Text(L10().usedIn),
subtitle: Text(L10().usedInDetails),
leading: FaIcon(FontAwesomeIcons.layerGroup, color: COLOR_CLICK),
trailing: Text(usedInCount.toString()),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => BillOfMaterialsWidget(part, isParentComponent: false)
)
);
}
)
);
}
}
// Keywords?
if (part.keywords.isNotEmpty) {
tiles.add(