diff --git a/hb_server/apps/pm/serializers.py b/hb_server/apps/pm/serializers.py index 735b0cc..90ff400 100644 --- a/hb_server/apps/pm/serializers.py +++ b/hb_server/apps/pm/serializers.py @@ -8,7 +8,7 @@ from apps.system.serializers import OrganizationSimpleSerializer class ProductionPlanCreateFromOrderSerializer(serializers.ModelSerializer): class Meta: model = ProductionPlan - fields = ['order', 'number', 'count', 'start_date', 'end_date'] + fields = ['order', 'count', 'start_date', 'end_date'] class ProductionPlanSerializer(serializers.ModelSerializer): order_ = OrderSerializer(source='order', read_only=True) diff --git a/hb_server/apps/wpm/serializers.py b/hb_server/apps/wpm/serializers.py index c5bae06..80e8c8c 100644 --- a/hb_server/apps/wpm/serializers.py +++ b/hb_server/apps/wpm/serializers.py @@ -2,7 +2,7 @@ from rest_framework import serializers, exceptions from rest_framework.serializers import ModelSerializer from apps.inm.models import FIFO, FIFOItem, FIFOItemProduct, IProduct, MaterialBatch, WareHouse from apps.inm.signals import update_inm -from apps.mtm.models import Material, RecordForm, Step +from apps.mtm.models import Material, RecordForm, Step, SubprodctionMaterial from apps.mtm.serializers import MaterialSimpleSerializer, StepSimpleSerializer from apps.pm.models import SubProductionPlan, SubProductionProgress @@ -32,10 +32,10 @@ class PickSerializer(serializers.Serializer): def create(self, validated_data): picks = validated_data.pop('picks') sp = validated_data.pop('subproduction_plan') - if sp.state not in [1,2]: + if sp.state not in [1, 2, 3]: raise exceptions.ValidationError('该子计划状态错误') - if sp.is_picked: - raise exceptions.ValidationError('该子计划已领料') + # if sp.is_picked: + # raise exceptions.ValidationError('该子计划已领料') # for i in picks: # try: # instance = MaterialBatch.objects.get(material=i['material'], batch=i['batch']) @@ -82,9 +82,11 @@ class PickSerializer(serializers.Serializer): wm.count = wm.count + i['count'] wm.save() # 更新子计划物料情况 - spp = SubProductionProgress.objects.get(material=i['material'], subproduction_plan=sp, type=1) + spp = SubProductionProgress.objects.get(material=i['material'], subproduction_plan=sp, type=SubprodctionMaterial.SUB_MA_TYPE_IN) spp.count_pick = spp.count_pick + i['count'] spp.save() + if spp.count_pick > spp.count: + raise exceptions.APIException('超过计划需求数') # 更新半成品表 wproducts = WProduct.objects.filter(pk__in=[x.wproduct for x in i['iproducts']]) first_step = Step.objects.get(pk=sp.steps[0].id)