From c7ad0048837fd9251da8444079c77e334fa99d05 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 5 Dec 2024 17:03:14 +1100 Subject: [PATCH] Sales order shipment progress - Display progress bar for sales order page --- lib/inventree/orders.dart | 4 ++++ lib/widget/order/sales_order_detail.dart | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/lib/inventree/orders.dart b/lib/inventree/orders.dart index 25b97d7b..8d63f340 100644 --- a/lib/inventree/orders.dart +++ b/lib/inventree/orders.dart @@ -28,6 +28,10 @@ class InvenTreeOrder extends InvenTreeModel { 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"); diff --git a/lib/widget/order/sales_order_detail.dart b/lib/widget/order/sales_order_detail.dart index 243a77f1..30c218ed 100644 --- a/lib/widget/order/sales_order_detail.dart +++ b/lib/widget/order/sales_order_detail.dart @@ -362,6 +362,19 @@ class _SalesOrderDetailState extends RefreshableState { trailing: Text("${widget.order.completedLineItemCount} / ${widget.order.lineItemCount}", style: TextStyle(color: lineColor)), )); + // Shipment progress + if (widget.order.shipmentCount > 0) { + tiles.add(ListTile( + title: Text(L10().shipments), + subtitle: ProgressBar( + widget.order.completedShipmentCount.toDouble(), + maximum: widget.order.shipmentCount.toDouble() + ), + leading: Icon(TablerIcons.truck_delivery), + trailing: Text("${widget.order.completedShipmentCount} / ${widget.order.shipmentCount}", style: TextStyle(color: lineColor)), + )); + } + // TODO: total price if (widget.order.targetDate.isNotEmpty) {