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

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

View File

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