From ae43296ab5f83b77a6b4c482a2e534bec42932f3 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 11 Oct 2023 15:19:26 +0800 Subject: [PATCH] fix: puorderitem create bug --- apps/pum/serializers.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/apps/pum/serializers.py b/apps/pum/serializers.py index 68f02c7e..27128771 100644 --- a/apps/pum/serializers.py +++ b/apps/pum/serializers.py @@ -6,6 +6,7 @@ from rest_framework.exceptions import ValidationError from apps.pum.models import Supplier, PuPlan, PuPlanItem, PuOrder, PuOrderItem from apps.mtm.serializers import MaterialSerializer + class SupplierSerializer(CustomModelSerializer): class Meta: model = Supplier @@ -23,11 +24,13 @@ class PuPlanSerializer(CustomModelSerializer): if instance.state != PuPlan.PUPLAN_CREATE: raise ValidationError('该状态下不可编辑') return super().update(instance, validated_data) - + class PuPlanItemSerializer(CustomModelSerializer): material_ = MaterialSerializer(source='material', read_only=True) - belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True) + belong_dept_name = serializers.CharField( + source='belong_dept.name', read_only=True) + class Meta: model = PuPlanItem fields = '__all__' @@ -42,7 +45,7 @@ class PuPlanItemSerializer(CustomModelSerializer): if PuPlanItem.objects.filter(material=material, belong_dept=user.belong_dept).exists(): raise ValidationError('同部门已提交该物料需求,请确认!') return super().create(validated_data) - + def update(self, instance, validated_data): validated_data.pop('pu_plan') pu_plan = instance.pu_plan @@ -68,10 +71,11 @@ class PuOrderSerializer(CustomModelSerializer): if instance.steate != PuOrder.PUORDER_CREATE: raise ValidationError('该状态下不可编辑') return super().update(instance, validated_data) - + class PuOrderItemSerializer(CustomModelSerializer): material_ = MaterialSerializer(source='material', read_only=True) + class Meta: model = PuOrderItem fields = '__all__' @@ -82,10 +86,10 @@ class PuOrderItemSerializer(CustomModelSerializer): material = validated_data['material'] if pu_order.state != PuOrder.PUORDER_CREATE: raise ValidationError('采购订单该状态下不可添加明细') - if PuOrder.objects.filter(pu_order=pu_order, material=material).exists(): + if PuOrderItem.objects.filter(pu_order=pu_order, material=material).exists(): raise ValidationError('该物料已添加') return super().create(validated_data) - + def update(self, instance, validated_data): validated_data.pop('material') validated_data.pop('pu_order') @@ -93,8 +97,10 @@ class PuOrderItemSerializer(CustomModelSerializer): if pu_order.state != PuOrder.PUORDER_CREATE: raise ValidationError('采购订单该状态下不可编辑') return super().update(instance, validated_data) - + class AddSerializer(serializers.Serializer): - pu_order = serializers.PrimaryKeyRelatedField(label='采购订单ID', queryset=PuOrder.objects.all()) - pu_planitems = serializers.PrimaryKeyRelatedField(label='计划明细ID', queryset=PuPlanItem.objects.all(), many=True) + pu_order = serializers.PrimaryKeyRelatedField( + label='采购订单ID', queryset=PuOrder.objects.all()) + pu_planitems = serializers.PrimaryKeyRelatedField( + label='计划明细ID', queryset=PuPlanItem.objects.all(), many=True)