fix: 可不用隐式物料

This commit is contained in:
caoqianming 2023-11-03 18:33:12 +08:00
parent a39e87c8f3
commit 1b85a7f88a
2 changed files with 14 additions and 11 deletions

View File

@ -107,6 +107,9 @@ class RouteSerializer(CustomModelSerializer):
# return super().validate(attrs) # return super().validate(attrs)
def gen_material_out(self, instance): def gen_material_out(self, instance):
"""
废弃不用了
"""
name = f'{instance.material.name}-中' name = f'{instance.material.name}-中'
instance.material_out, _ = Material.objects.get_or_create(type=Material.MA_TYPE_HALFGOOD, parent=instance.material, process=instance.process, instance.material_out, _ = Material.objects.get_or_create(type=Material.MA_TYPE_HALFGOOD, parent=instance.material, process=instance.process,
defaults={'parent': instance.material, 'process': instance.process, defaults={'parent': instance.material, 'process': instance.process,
@ -120,15 +123,15 @@ class RouteSerializer(CustomModelSerializer):
instance.save() instance.save()
def create(self, validated_data): def create(self, validated_data):
process = validated_data['process'] process = validated_data.get('process', None)
if Route.objects.filter(material=validated_data['material'], process=process).exists(): if process and Route.objects.filter(material=validated_data['material'], process=process).exists():
raise ValidationError('已选择该工序') raise ValidationError('已选择该工序')
with transaction.atomic(): with transaction.atomic():
instance = super().create(validated_data) instance = super().create(validated_data)
if 'material_out' in validated_data and validated_data['material_out']: # if 'material_out' in validated_data and validated_data['material_out'] and instance.material:
pass # pass
else: # else:
self.gen_material_out(instance) # self.gen_material_out(instance)
return instance return instance
def update(self, instance, validated_data): def update(self, instance, validated_data):
@ -136,8 +139,8 @@ class RouteSerializer(CustomModelSerializer):
validated_data.pop('process', None) validated_data.pop('process', None)
with transaction.atomic(): with transaction.atomic():
instance = super().update(instance, validated_data) instance = super().update(instance, validated_data)
if 'material_out' in validated_data and validated_data['material_out']: # if 'material_out' in validated_data and validated_data['material_out'] and instance.material:
pass # pass
else: # else:
self.gen_material_out(instance) # self.gen_material_out(instance)
return instance return instance

View File

@ -145,7 +145,7 @@ def mlog_submit(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
else: else:
material_has.count = material_has.count - mlog.count_use material_has.count = material_has.count - mlog.count_use
material_has.save() material_has.save()
if material_out.is_hidden is False: # 需要入车间库存 if material_out and material_out.is_hidden is False: # 需要入车间库存
# 有多个产物的情况 # 有多个产物的情况
if material_out.brothers and Mlogb.objects.filter(mlog=mlog).exists(): if material_out.brothers and Mlogb.objects.filter(mlog=mlog).exists():
for item in Mlogb.objects.filter(mlog=mlog): for item in Mlogb.objects.filter(mlog=mlog):