diff --git a/lib/inventree/purchase_order.dart b/lib/inventree/purchase_order.dart index 9a4f4943..b224458d 100644 --- a/lib/inventree/purchase_order.dart +++ b/lib/inventree/purchase_order.dart @@ -226,7 +226,7 @@ class InvenTreePOLineItem extends InvenTreeOrderLine { String get purchasePriceCurrency => getString("purchase_price_currency"); - int get destination => getInt("destination"); + int get destinationId => getInt("destination"); Map get destinationDetail => getMap("destination_detail"); } diff --git a/lib/widget/order/purchase_order_detail.dart b/lib/widget/order/purchase_order_detail.dart index 29dc68bf..89efb4da 100644 --- a/lib/widget/order/purchase_order_detail.dart +++ b/lib/widget/order/purchase_order_detail.dart @@ -1,8 +1,6 @@ import "package:flutter/material.dart"; import "package:flutter_speed_dial/flutter_speed_dial.dart"; import "package:flutter_tabler_icons/flutter_tabler_icons.dart"; -import "package:inventree/widget/dialogs.dart"; -import "package:inventree/widget/order/po_line_list.dart"; import "package:inventree/app_colors.dart"; import "package:inventree/barcode/barcode.dart"; @@ -10,8 +8,16 @@ import "package:inventree/barcode/purchase_order.dart"; import "package:inventree/helpers.dart"; import "package:inventree/l10.dart"; +import "package:inventree/inventree/model.dart"; import "package:inventree/inventree/company.dart"; +import "package:inventree/inventree/stock.dart"; import "package:inventree/inventree/purchase_order.dart"; + +import "package:inventree/widget/dialogs.dart"; +import "package:inventree/widget/stock/location_display.dart"; +import "package:inventree/widget/order/po_line_list.dart"; + + import "package:inventree/widget/attachment_widget.dart"; import "package:inventree/widget/company/company_detail.dart"; import "package:inventree/widget/notes_widget.dart"; @@ -42,6 +48,8 @@ class _PurchaseOrderDetailState extends RefreshableState lines = []; + InvenTreeStockLocation? destination; + int completedLines = 0; int attachmentCount = 0; @@ -258,6 +266,28 @@ class _PurchaseOrderDetailState extends RefreshableState 0) { + InvenTreeStockLocation().get(widget.order.destinationId).then((InvenTreeModel? loc) { + if (mounted) { + if (loc != null && loc is InvenTreeStockLocation) { + setState(() { + destination = loc; + }); + } else { + setState(() { + destination = null; + }); + } + } + }); + } else { + if (mounted) { + setState(() { + destination = null; + }); + } + } } // Edit the currently displayed PurchaseOrder @@ -348,6 +378,23 @@ class _PurchaseOrderDetailState extends RefreshableState { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => LocationDisplayWidget(destination!) + ) + ) + } + )); + } + Color lineColor = completedLines < widget.order.lineItemCount ? COLOR_WARNING : COLOR_SUCCESS; tiles.add(ListTile( @@ -444,5 +491,4 @@ class _PurchaseOrderDetailState extends RefreshableState