From 8a2fce9c36fd044ea0fe7a361837dc1b65f84485 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 21 Feb 2025 22:22:45 +1100 Subject: [PATCH] Barcode validation fix (#9127) (#9130) * Fix logic for adding items to SalesOrder * Same thing for purchase orders * Update serializers.py Revert typo fix - Otherwise, we need to do an API bump and the PR can't be back-ported! (cherry picked from commit bc9dbf7df4666935ac5699c22daf04122bd78445) Co-authored-by: Oliver --- .../InvenTree/plugin/base/barcodes/serializers.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/backend/InvenTree/plugin/base/barcodes/serializers.py b/src/backend/InvenTree/plugin/base/barcodes/serializers.py index f51eaa35a5..da805360b1 100644 --- a/src/backend/InvenTree/plugin/base/barcodes/serializers.py +++ b/src/backend/InvenTree/plugin/base/barcodes/serializers.py @@ -11,7 +11,11 @@ import order.models import plugin.base.barcodes.helper import stock.models from InvenTree.serializers import UserSerializer -from order.status_codes import PurchaseOrderStatus, SalesOrderStatus +from order.status_codes import ( + PurchaseOrderStatus, + PurchaseOrderStatusGroups, + SalesOrderStatusGroups, +) class BarcodeScanResultSerializer(serializers.ModelSerializer): @@ -135,8 +139,8 @@ class BarcodePOAllocateSerializer(BarcodeSerializer): def validate_purchase_order(self, order: order.models.PurchaseOrder): """Validate the provided order.""" - if order.status != PurchaseOrderStatus.PENDING.value: - raise ValidationError(_('Purchase order is not pending')) + if order.status not in PurchaseOrderStatusGroups.OPEN: + raise ValidationError(_('Purchase order is not open')) return order @@ -213,8 +217,8 @@ class BarcodeSOAllocateSerializer(BarcodeSerializer): def validate_sales_order(self, order: order.models.SalesOrder): """Validate the provided order.""" - if order and order.status != SalesOrderStatus.PENDING.value: - raise ValidationError(_('Sales order is not pending')) + if order and order.status not in SalesOrderStatusGroups.OPEN: + raise ValidationError(_('Sales order is not open')) return order