mirror of
https://github.com/HendrikRauh/inventree-app.git
synced 2026-01-13 03:26:24 +00:00
* Bump release notes and version * Display responsible owner for purchase order * Display responsible owner for sales order * Display order completion date
120 lines
No EOL
3.1 KiB
Dart
120 lines
No EOL
3.1 KiB
Dart
/*
|
|
* Base model for various "orders" which share common properties
|
|
*/
|
|
|
|
|
|
import "package:inventree/inventree/model.dart";
|
|
import "package:inventree/inventree/part.dart";
|
|
|
|
|
|
/*
|
|
* Generic class representing an "order"
|
|
*/
|
|
class InvenTreeOrder extends InvenTreeModel {
|
|
|
|
InvenTreeOrder() : super();
|
|
|
|
InvenTreeOrder.fromJson(Map<String, dynamic> json) : super.fromJson(json);
|
|
|
|
String get issueDate => getString("issue_date");
|
|
|
|
String get completionDate => getDateString("complete_date");
|
|
|
|
String get creationDate => getDateString("creation_date");
|
|
|
|
String get shipmentDate => getDateString("shipment_date");
|
|
|
|
String get targetDate => getDateString("target_date");
|
|
|
|
int get lineItemCount => getInt("line_items", backup: 0);
|
|
|
|
int get completedLineItemCount => getInt("completed_lines", backup: 0);
|
|
|
|
int get shipmentCount => getInt("shipments_count", backup: 0);
|
|
|
|
int get completedShipmentCount => getInt("completed_shipments_count", backup: 0);
|
|
|
|
bool get complete => completedLineItemCount >= lineItemCount;
|
|
|
|
bool get overdue => getBool("overdue");
|
|
|
|
String get reference => getString("reference");
|
|
|
|
int get responsibleId => getInt("responsible");
|
|
|
|
String get responsibleName => getString("name", subKey: "responsible_detail");
|
|
|
|
String get responsibleLabel => getString("label", subKey: "responsible_detail");
|
|
|
|
// Project code information
|
|
int get projectCodeId => getInt("project_code");
|
|
|
|
String get projectCode => getString("code", subKey: "project_code_detail");
|
|
|
|
String get projectCodeDescription => getString("description", subKey: "project_code_detail");
|
|
|
|
bool get hasProjectCode => projectCode.isNotEmpty;
|
|
|
|
int get status => getInt("status");
|
|
|
|
String get statusText => getString("status_text");
|
|
|
|
double? get totalPrice {
|
|
String price = getString("total_price");
|
|
|
|
if (price.isEmpty) {
|
|
return null;
|
|
} else {
|
|
return double.tryParse(price);
|
|
}
|
|
}
|
|
|
|
// Return the currency for this order
|
|
// Note that the nomenclature in the API changed at some point
|
|
String get totalPriceCurrency {
|
|
if (jsondata.containsKey("order_currency")) {
|
|
return getString("order_currency");
|
|
} else if (jsondata.containsKey("total_price_currency")) {
|
|
return getString("total_price_currency");
|
|
} else {
|
|
return "";
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
* Generic class representing an "order line"
|
|
*/
|
|
class InvenTreeOrderLine extends InvenTreeModel {
|
|
|
|
InvenTreeOrderLine() : super();
|
|
|
|
InvenTreeOrderLine.fromJson(Map<String, dynamic> json) : super.fromJson(json);
|
|
|
|
bool get overdue => getBool("overdue");
|
|
|
|
double get quantity => getDouble("quantity");
|
|
|
|
String get reference => getString("reference");
|
|
|
|
int get orderId => getInt("order");
|
|
|
|
InvenTreePart? get part {
|
|
dynamic part_detail = jsondata["part_detail"];
|
|
|
|
if (part_detail == null) {
|
|
return null;
|
|
} else {
|
|
return InvenTreePart.fromJson(part_detail as Map<String, dynamic>);
|
|
}
|
|
}
|
|
|
|
int get partId => getInt("pk", subKey: "part_detail");
|
|
|
|
String get partName => getString("name", subKey: "part_detail");
|
|
|
|
String get partImage => getString("thumbnail", subKey: "part_detail");
|
|
|
|
String get targetDate => getDateString("target_date");
|
|
} |