diff --git a/lib/inventree/purchase_order.dart b/lib/inventree/purchase_order.dart index 6b8595cf..59dff7e4 100644 --- a/lib/inventree/purchase_order.dart +++ b/lib/inventree/purchase_order.dart @@ -203,3 +203,24 @@ class InvenTreePOLineItem extends InvenTreeModel { return InvenTreePOLineItem.fromJson(json); } } + +/* + * Class representing an attachment file against a StockItem object + */ +class InvenTreePurchaseOrderAttachment extends InvenTreeAttachment { + + InvenTreePurchaseOrderAttachment() : super(); + + InvenTreePurchaseOrderAttachment.fromJson(Map json) : super.fromJson(json); + + @override + String get REFERENCE_FIELD => "order"; + + @override + String get URL => "order/po/attachment/"; + + @override + InvenTreeModel createFromJson(Map json) { + return InvenTreePurchaseOrderAttachment.fromJson(json); + } +} diff --git a/lib/widget/purchase_order_detail.dart b/lib/widget/purchase_order_detail.dart index 2abe56c6..2b511446 100644 --- a/lib/widget/purchase_order_detail.dart +++ b/lib/widget/purchase_order_detail.dart @@ -9,6 +9,7 @@ import "package:inventree/app_colors.dart"; import "package:inventree/helpers.dart"; import "package:inventree/inventree/company.dart"; import "package:inventree/inventree/purchase_order.dart"; +import "package:inventree/widget/attachment_widget.dart"; import "package:inventree/widget/company_detail.dart"; import "package:inventree/widget/refreshable_state.dart"; import "package:inventree/l10.dart"; @@ -37,6 +38,8 @@ class _PurchaseOrderDetailState extends RefreshableState editOrder(BuildContext context) async { @@ -177,6 +186,26 @@ class _PurchaseOrderDetailState extends RefreshableState 0 ? Text(attachmentCount.toString()) : null, + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => AttachmentWidget( + InvenTreePurchaseOrderAttachment(), + order.pk, + InvenTreeAPI().checkPermission("purchase_order", "change")) + ) + ); + }, + ) + ); + return tiles; }