From ab8754bd00ae6573936cdaedf5fc9b5caa5450fa Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 17 Jun 2026 10:58:20 +1000 Subject: [PATCH] Build barcodes (#836) * Handle scanning of BuildOrder barcodes * Update release notes * Add required model type change * adjust logic --- assets/release_notes.md | 6 ++++++ lib/barcode/barcode.dart | 20 ++++++++++++++++++++ pubspec.yaml | 2 +- 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/assets/release_notes.md b/assets/release_notes.md index bf6bf3a3..4340da8c 100644 --- a/assets/release_notes.md +++ b/assets/release_notes.md @@ -1,3 +1,9 @@ +## 0.24.4 - June 2026 +--- + +- Enable scanning of Build Order barcodes +- Updated translations + ## 0.24.3 - May 2026 --- diff --git a/lib/barcode/barcode.dart b/lib/barcode/barcode.dart index 8fe50caa..f9ad5b3f 100644 --- a/lib/barcode/barcode.dart +++ b/lib/barcode/barcode.dart @@ -3,9 +3,11 @@ 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/helpers.dart"; +import "package:inventree/inventree/build.dart"; import "package:inventree/inventree/sales_order.dart"; import "package:inventree/inventree/sentry.dart"; import "package:inventree/preferences.dart"; +import "package:inventree/widget/build/build_detail.dart"; import "package:inventree/widget/company/manufacturer_part_detail.dart"; import "package:inventree/widget/order/sales_order_detail.dart"; import "package:one_context/one_context.dart"; @@ -214,6 +216,20 @@ class BarcodeScanHandler extends BarcodeHandler { } } + /* + * Response when a "BuildOrder" instance is scanned + */ + Future handleBuildOrder(int pk) async { + var order = await InvenTreeBuildOrder().get(pk); + + if (order is InvenTreeBuildOrder) { + OneContext().pop(); + OneContext().push( + MaterialPageRoute(builder: (context) => BuildOrderDetailWidget(order)), + ); + } + } + /* * Response when a "PurchaseOrder" instance is scanned */ @@ -259,6 +275,7 @@ class BarcodeScanHandler extends BarcodeHandler { ]; if (InvenTreeAPI().supportsOrderBarcodes) { + validModels.add(InvenTreeBuildOrder.MODEL_TYPE); validModels.add(InvenTreePurchaseOrder.MODEL_TYPE); validModels.add(InvenTreeSalesOrder.MODEL_TYPE); } @@ -287,6 +304,9 @@ class BarcodeScanHandler extends BarcodeHandler { case InvenTreeStockItem.MODEL_TYPE: await handleStockItem(pk); return; + case InvenTreeBuildOrder.MODEL_TYPE: + await handleBuildOrder(pk); + return; case InvenTreePurchaseOrder.MODEL_TYPE: await handlePurchaseOrder(pk); return; diff --git a/pubspec.yaml b/pubspec.yaml index 5b7592f1..0bd736de 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: inventree description: InvenTree stock management -version: 0.24.3+121 +version: 0.24.4+122 environment: sdk: ^3.8.1