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)
def gen_material_out(self, instance):
"""
废弃不用了
"""
name = f'{instance.material.name}-中'
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,
@ -120,15 +123,15 @@ class RouteSerializer(CustomModelSerializer):
instance.save()
def create(self, validated_data):
process = validated_data['process']
if Route.objects.filter(material=validated_data['material'], process=process).exists():
process = validated_data.get('process', None)
if process and Route.objects.filter(material=validated_data['material'], process=process).exists():
raise ValidationError('已选择该工序')
with transaction.atomic():
instance = super().create(validated_data)
if 'material_out' in validated_data and validated_data['material_out']:
pass
else:
self.gen_material_out(instance)
# if 'material_out' in validated_data and validated_data['material_out'] and instance.material:
# pass
# else:
# self.gen_material_out(instance)
return instance
def update(self, instance, validated_data):
@ -136,8 +139,8 @@ class RouteSerializer(CustomModelSerializer):
validated_data.pop('process', None)
with transaction.atomic():
instance = super().update(instance, validated_data)
if 'material_out' in validated_data and validated_data['material_out']:
pass
else:
self.gen_material_out(instance)
# if 'material_out' in validated_data and validated_data['material_out'] and instance.material:
# pass
# else:
# self.gen_material_out(instance)
return instance

View File

@ -145,7 +145,7 @@ def mlog_submit(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
else:
material_has.count = material_has.count - mlog.count_use
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():
for item in Mlogb.objects.filter(mlog=mlog):