2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-04-27 21:16:48 +00:00

Order responsible (#602)
Some checks failed
Android / build (push) Has been cancelled
CI / test (push) Has been cancelled
iOS / build (push) Has been cancelled

* Bump release notes and version

* Display responsible owner for purchase order

* Display responsible owner for sales order

* Display order completion date
This commit is contained in:
Oliver 2025-01-20 23:22:10 +11:00 committed by GitHub
parent 2ea29368ed
commit 854ef95fbf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 69 additions and 13 deletions

View File

@ -1,3 +1,9 @@
### 0.17.4 - January 2025
---
- Display responsible owner for orders
- Display completion date for orders
- Updated translations
### 0.17.3 - January 2025 ### 0.17.3 - January 2025
--- ---

View File

@ -1530,8 +1530,13 @@ class InvenTreeAPI {
} }
// Return a boolean global setting value // Return a boolean global setting value
Future<bool> getGlobalBooleanSetting(String key) async { Future<bool> getGlobalBooleanSetting(String key, { bool backup = false }) async {
String value = await getGlobalSetting(key); String value = await getGlobalSetting(key);
if (value.isEmpty) {
return backup;
}
return value.toLowerCase().trim() == "true"; return value.toLowerCase().trim() == "true";
} }

View File

@ -18,11 +18,13 @@ class InvenTreeOrder extends InvenTreeModel {
String get issueDate => getString("issue_date"); String get issueDate => getString("issue_date");
String get completeDate => getString("complete_date"); String get completionDate => getDateString("complete_date");
String get creationDate => getString("creation_date"); String get creationDate => getDateString("creation_date");
String get targetDate => getString("target_date"); String get shipmentDate => getDateString("shipment_date");
String get targetDate => getDateString("target_date");
int get lineItemCount => getInt("line_items", backup: 0); int get lineItemCount => getInt("line_items", backup: 0);
@ -40,6 +42,10 @@ class InvenTreeOrder extends InvenTreeModel {
int get responsibleId => getInt("responsible"); int get responsibleId => getInt("responsible");
String get responsibleName => getString("name", subKey: "responsible_detail");
String get responsibleLabel => getString("label", subKey: "responsible_detail");
// Project code information // Project code information
int get projectCodeId => getInt("project_code"); int get projectCodeId => getInt("project_code");
@ -110,6 +116,5 @@ class InvenTreeOrderLine extends InvenTreeModel {
String get partImage => getString("thumbnail", subKey: "part_detail"); String get partImage => getString("thumbnail", subKey: "part_detail");
// TODO: Perhaps parse this as an actual date? String get targetDate => getDateString("target_date");
String get targetDate => getString("target_date");
} }

View File

@ -246,6 +246,9 @@
"companies": "Companies", "companies": "Companies",
"@companies": {}, "@companies": {},
"completionDate": "Completion Date",
"@completionDate": {},
"configureServer": "Configure server settings", "configureServer": "Configure server settings",
"@configureServer": {}, "@configureServer": {},
@ -1047,6 +1050,9 @@
"reportBugDescription": "Submit bug report (requires GitHub account)", "reportBugDescription": "Submit bug report (requires GitHub account)",
"@reportBugDescription": {}, "@reportBugDescription": {},
"responsible": "Responsible",
"@responsible": {},
"results": "Results", "results": "Results",
"@results": {}, "@results": {},

View File

@ -257,7 +257,7 @@ class _PurchaseOrderDetailState extends RefreshableState<PurchaseOrderDetailWidg
lines = await widget.order.getLineItems(); lines = await widget.order.getLineItems();
showCameraShortcut = await InvenTreeSettingsManager().getBool(INV_PO_SHOW_CAMERA, true); showCameraShortcut = await InvenTreeSettingsManager().getBool(INV_PO_SHOW_CAMERA, true);
supportProjectCodes = api.supportsProjectCodes && await api.getGlobalBooleanSetting("PROJECT_CODES_ENABLED"); supportProjectCodes = api.supportsProjectCodes && await api.getGlobalBooleanSetting("PROJECT_CODES_ENABLED", backup: true);
completedLines = 0; completedLines = 0;
@ -426,7 +426,7 @@ class _PurchaseOrderDetailState extends RefreshableState<PurchaseOrderDetailWidg
if (widget.order.issueDate.isNotEmpty) { if (widget.order.issueDate.isNotEmpty) {
tiles.add(ListTile( tiles.add(ListTile(
title: Text(L10().issueDate), title: Text(L10().issueDate),
subtitle: Text(widget.order.issueDate), trailing: Text(widget.order.issueDate),
leading: Icon(TablerIcons.calendar), leading: Icon(TablerIcons.calendar),
)); ));
} }
@ -434,11 +434,28 @@ class _PurchaseOrderDetailState extends RefreshableState<PurchaseOrderDetailWidg
if (widget.order.targetDate.isNotEmpty) { if (widget.order.targetDate.isNotEmpty) {
tiles.add(ListTile( tiles.add(ListTile(
title: Text(L10().targetDate), title: Text(L10().targetDate),
subtitle: Text(widget.order.targetDate), trailing: Text(widget.order.targetDate),
leading: Icon(TablerIcons.calendar), leading: Icon(TablerIcons.calendar),
)); ));
} }
if (widget.order.completionDate.isNotEmpty) {
tiles.add(ListTile(
title: Text(L10().completionDate),
trailing: Text(widget.order.completionDate),
leading: Icon(TablerIcons.calendar),
));
}
// Responsible "owner"
if (widget.order.responsibleName.isNotEmpty && widget.order.responsibleLabel.isNotEmpty) {
tiles.add(ListTile(
title: Text(L10().responsible),
leading: Icon(widget.order.responsibleLabel == "group" ? TablerIcons.users : TablerIcons.user),
trailing: Text(widget.order.responsibleName)
));
}
// Notes tile // Notes tile
tiles.add( tiles.add(
ListTile( ListTile(

View File

@ -260,7 +260,7 @@ class _SalesOrderDetailState extends RefreshableState<SalesOrderDetailWidget> {
await widget.order.reload(); await widget.order.reload();
await api.SalesOrderStatus.load(); await api.SalesOrderStatus.load();
supportsProjectCodes = api.supportsProjectCodes && await api.getGlobalBooleanSetting("PROJECT_CODES_ENABLED"); supportsProjectCodes = api.supportsProjectCodes && await api.getGlobalBooleanSetting("PROJECT_CODES_ENABLED", backup: true);
showCameraShortcut = await InvenTreeSettingsManager().getBool(INV_SO_SHOW_CAMERA, true); showCameraShortcut = await InvenTreeSettingsManager().getBool(INV_SO_SHOW_CAMERA, true);
InvenTreeSalesOrderAttachment().countAttachments(widget.order.pk).then((int value) { InvenTreeSalesOrderAttachment().countAttachments(widget.order.pk).then((int value) {
@ -353,7 +353,7 @@ class _SalesOrderDetailState extends RefreshableState<SalesOrderDetailWidget> {
if (widget.order.customerReference.isNotEmpty) { if (widget.order.customerReference.isNotEmpty) {
tiles.add(ListTile( tiles.add(ListTile(
title: Text(L10().customerReference), title: Text(L10().customerReference),
subtitle: Text(widget.order.customerReference), trailing: Text(widget.order.customerReference),
leading: Icon(TablerIcons.hash), leading: Icon(TablerIcons.hash),
)); ));
} }
@ -388,11 +388,28 @@ class _SalesOrderDetailState extends RefreshableState<SalesOrderDetailWidget> {
if (widget.order.targetDate.isNotEmpty) { if (widget.order.targetDate.isNotEmpty) {
tiles.add(ListTile( tiles.add(ListTile(
title: Text(L10().targetDate), title: Text(L10().targetDate),
subtitle: Text(widget.order.targetDate), trailing: Text(widget.order.targetDate),
leading: Icon(TablerIcons.calendar), leading: Icon(TablerIcons.calendar),
)); ));
} }
if (widget.order.shipmentDate.isNotEmpty) {
tiles.add(ListTile(
title: Text(L10().completionDate),
trailing: Text(widget.order.shipmentDate),
leading: Icon(TablerIcons.calendar),
));
}
// Responsible "owner"
if (widget.order.responsibleName.isNotEmpty && widget.order.responsibleLabel.isNotEmpty) {
tiles.add(ListTile(
title: Text(L10().responsible),
leading: Icon(widget.order.responsibleLabel == "group" ? TablerIcons.users : TablerIcons.user),
trailing: Text(widget.order.responsibleName)
));
}
// Notes tile // Notes tile
tiles.add( tiles.add(
ListTile( ListTile(

View File

@ -1,7 +1,7 @@
name: inventree name: inventree
description: InvenTree stock management description: InvenTree stock management
version: 0.17.3+95 version: 0.17.4+96
environment: environment:
sdk: ">=2.19.5 <3.13.0" sdk: ">=2.19.5 <3.13.0"