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):