fix: 可不用隐式物料
This commit is contained in:
parent
a39e87c8f3
commit
1b85a7f88a
|
@ -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
|
||||||
|
|
|
@ -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):
|
||||||
|
|
Loading…
Reference in New Issue