创建生产计划无需填写编号

This commit is contained in:
caoqianming 2021-11-17 15:45:24 +08:00
parent eaea0cdb7c
commit de94a56416
2 changed files with 8 additions and 6 deletions

View File

@ -8,7 +8,7 @@ from apps.system.serializers import OrganizationSimpleSerializer
class ProductionPlanCreateFromOrderSerializer(serializers.ModelSerializer): class ProductionPlanCreateFromOrderSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = ProductionPlan model = ProductionPlan
fields = ['order', 'number', 'count', 'start_date', 'end_date'] fields = ['order', 'count', 'start_date', 'end_date']
class ProductionPlanSerializer(serializers.ModelSerializer): class ProductionPlanSerializer(serializers.ModelSerializer):
order_ = OrderSerializer(source='order', read_only=True) order_ = OrderSerializer(source='order', read_only=True)

View File

@ -2,7 +2,7 @@ from rest_framework import serializers, exceptions
from rest_framework.serializers import ModelSerializer from rest_framework.serializers import ModelSerializer
from apps.inm.models import FIFO, FIFOItem, FIFOItemProduct, IProduct, MaterialBatch, WareHouse from apps.inm.models import FIFO, FIFOItem, FIFOItemProduct, IProduct, MaterialBatch, WareHouse
from apps.inm.signals import update_inm 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.mtm.serializers import MaterialSimpleSerializer, StepSimpleSerializer
from apps.pm.models import SubProductionPlan, SubProductionProgress from apps.pm.models import SubProductionPlan, SubProductionProgress
@ -32,10 +32,10 @@ class PickSerializer(serializers.Serializer):
def create(self, validated_data): def create(self, validated_data):
picks = validated_data.pop('picks') picks = validated_data.pop('picks')
sp = validated_data.pop('subproduction_plan') sp = validated_data.pop('subproduction_plan')
if sp.state not in [1,2]: if sp.state not in [1, 2, 3]:
raise exceptions.ValidationError('该子计划状态错误') raise exceptions.ValidationError('该子计划状态错误')
if sp.is_picked: # if sp.is_picked:
raise exceptions.ValidationError('该子计划已领料') # raise exceptions.ValidationError('该子计划已领料')
# for i in picks: # for i in picks:
# try: # try:
# instance = MaterialBatch.objects.get(material=i['material'], batch=i['batch']) # 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.count = wm.count + i['count']
wm.save() 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.count_pick = spp.count_pick + i['count']
spp.save() spp.save()
if spp.count_pick > spp.count:
raise exceptions.APIException('超过计划需求数')
# 更新半成品表 # 更新半成品表
wproducts = WProduct.objects.filter(pk__in=[x.wproduct for x in i['iproducts']]) wproducts = WProduct.objects.filter(pk__in=[x.wproduct for x in i['iproducts']])
first_step = Step.objects.get(pk=sp.steps[0].id) first_step = Step.objects.get(pk=sp.steps[0].id)