From 2e1f94b24cf93d3bc35c782abdc1045ca12d09a8 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 24 Jul 2024 10:51:42 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20order=E5=A2=9E=E5=8A=A0filter/miosale?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/inm/serializers.py | 8 ++++++-- apps/sam/views.py | 6 +++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/apps/inm/serializers.py b/apps/inm/serializers.py index 025488c4..31850e11 100644 --- a/apps/inm/serializers.py +++ b/apps/inm/serializers.py @@ -187,8 +187,10 @@ class MIOSaleSerializer(CustomModelSerializer): def create(self, validated_data): validated_data['type'] = MIO.MIO_TYPE_SALE_OUT - order = validated_data.get('order', None) + order: Order = validated_data.get('order', None) if order: + if order.state in [Order.ORDER_CREATE, Order.ORDER_DELIVERED]: + raise ValidationError('销售订单状态错误') validated_data['customer'] = order.customer if order.belong_dept: validated_data['belong_dept'] = order.belong_dept @@ -211,8 +213,10 @@ class MIOPurSerializer(CustomModelSerializer): def create(self, validated_data): validated_data['type'] = MIO.MIO_TYPE_PUR_IN - pu_order = validated_data.get('pu_order', None) + pu_order: PuOrder = validated_data.get('pu_order', None) if pu_order: + if pu_order.state in [PuOrder.PUORDER_CREATE, PuOrder.PUORDER_DONE]: + raise ValidationError('采购订单状态错误') validated_data['supplier'] = pu_order.supplier if pu_order.belong_dept: validated_data['belong_dept'] = pu_order.belong_dept diff --git a/apps/sam/views.py b/apps/sam/views.py index e7cab13e..e49b5618 100644 --- a/apps/sam/views.py +++ b/apps/sam/views.py @@ -58,7 +58,11 @@ class OrderViewSet(CustomModelViewSet): serializer_class = OrderSerializer select_related_fields = ['contract', 'customer'] search_fields = ['number'] - filter_fields = ['contract', 'customer'] + filter_fields = { + "contract": ["exact"], + "customer": ["exact"], + "state": ["exact", "in"], + } @transaction.atomic def perform_destroy(self, instance):