mirror of
https://github.com/HendrikRauh/inventree-app.git
synced 2026-01-13 03:26:24 +00:00
Adds new custom widget for displaying Bill of Materials data
This commit is contained in:
parent
591c6a5592
commit
78a5a9090d
4 changed files with 200 additions and 11 deletions
69
lib/inventree/bom.dart
Normal file
69
lib/inventree/bom.dart
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
|
||||
|
||||
import "package:inventree/inventree/model.dart";
|
||||
import "package:inventree/inventree/part.dart";
|
||||
|
||||
/*
|
||||
* Class representing the BomItem database model
|
||||
*/
|
||||
class InvenTreeBomItem extends InvenTreeModel {
|
||||
|
||||
InvenTreeBomItem() : super();
|
||||
|
||||
InvenTreeBomItem.fromJson(Map<String, dynamic> json) : super.fromJson(json);
|
||||
|
||||
@override
|
||||
InvenTreeModel createFromJson(Map<String, dynamic> json) {
|
||||
return InvenTreeBomItem.fromJson(json);
|
||||
}
|
||||
|
||||
@override
|
||||
String get URL => "bom/";
|
||||
|
||||
@override
|
||||
Map<String, String> defaultListFilters() {
|
||||
return {
|
||||
"sub_part_detail": "true",
|
||||
};
|
||||
}
|
||||
|
||||
@override
|
||||
Map<String, String> defaultGetFilters() {
|
||||
return {
|
||||
"sub_part_detail": "true",
|
||||
};
|
||||
}
|
||||
|
||||
// Extract the 'quantity' value associated with this BomItem
|
||||
double get quantity => double.tryParse(jsondata["quantity"].toString()) ?? 0;
|
||||
|
||||
// Extract the ID of the related part
|
||||
int get partId => int.tryParse(jsondata["part"].toString()) ?? -1;
|
||||
|
||||
// Return a Part instance for the referenced part
|
||||
InvenTreePart? get part {
|
||||
if (jsondata.containsKey("part_detail")) {
|
||||
dynamic data = jsondata["part_detail"] ?? {};
|
||||
if (data is Map<String, dynamic>) {
|
||||
return InvenTreePart.fromJson(data);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
// Return a Part instance for the referenced sub-part
|
||||
InvenTreePart? get subPart {
|
||||
if (jsondata.containsKey("sub_part_detail")) {
|
||||
dynamic data = jsondata["sub_part_detail"] ?? {};
|
||||
if (data is Map<String, dynamic>) {
|
||||
return InvenTreePart.fromJson(data);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
// Extract the ID of the related sub-part
|
||||
int get subPartId => int.tryParse(jsondata["sub_part"].toString()) ?? -1;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue