From eb1be30df4f003ecb89c9b7658659b0397662e5e Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 21 Nov 2023 08:23:09 +1100 Subject: [PATCH] Fix display of sales order completion status (#460) --- lib/inventree/orders.dart | 4 ++++ lib/widget/order/sales_order_detail.dart | 15 +++------------ 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/lib/inventree/orders.dart b/lib/inventree/orders.dart index 0595b2d8..25b97d7b 100644 --- a/lib/inventree/orders.dart +++ b/lib/inventree/orders.dart @@ -26,6 +26,10 @@ class InvenTreeOrder extends InvenTreeModel { int get lineItemCount => getInt("line_items", backup: 0); + int get completedLineItemCount => getInt("completed_lines", backup: 0); + + bool get complete => completedLineItemCount >= lineItemCount; + bool get overdue => getBool("overdue"); String get reference => getString("reference"); diff --git a/lib/widget/order/sales_order_detail.dart b/lib/widget/order/sales_order_detail.dart index 73422dab..d64070fc 100644 --- a/lib/widget/order/sales_order_detail.dart +++ b/lib/widget/order/sales_order_detail.dart @@ -37,7 +37,6 @@ class _SalesOrderDetailState extends RefreshableState { List lines = []; bool supportsProjectCodes = false; - int completedLines = 0; int attachmentCount = 0; @override @@ -114,14 +113,6 @@ class _SalesOrderDetailState extends RefreshableState { supportsProjectCodes = api.supportsProjectCodes && await api.getGlobalBooleanSetting("PROJECT_CODES_ENABLED"); - completedLines = 0; - - for (var line in lines) { - if (line.isComplete) { - completedLines += 1; - } - } - InvenTreeSalesOrderAttachment().count(filters: { "order": widget.order.pk.toString() }).then((int value) { @@ -219,16 +210,16 @@ class _SalesOrderDetailState extends RefreshableState { )); } - Color lineColor = completedLines < widget.order.lineItemCount ? COLOR_WARNING : COLOR_SUCCESS; + Color lineColor = widget.order.complete ? COLOR_WARNING : COLOR_SUCCESS; tiles.add(ListTile( title: Text(L10().lineItems), subtitle: ProgressBar( - completedLines.toDouble(), + widget.order.completedLineItemCount.toDouble(), maximum: widget.order.lineItemCount.toDouble() ), leading: FaIcon(FontAwesomeIcons.clipboardCheck), - trailing: Text("${completedLines} / ${widget.order.lineItemCount}", style: TextStyle(color: lineColor)), + trailing: Text("${widget.order.completedLineItemCount} / ${widget.order.lineItemCount}", style: TextStyle(color: lineColor)), )); // TODO: total price