fix: routeserializer material_out_tracking错误
This commit is contained in:
parent
73f0e504c9
commit
18e5ca2598
|
@ -163,7 +163,7 @@ class RouteSerializer(CustomModelSerializer):
|
||||||
source='material_out.type', read_only=True)
|
source='material_out.type', read_only=True)
|
||||||
material_out_is_hidden = serializers.BooleanField(
|
material_out_is_hidden = serializers.BooleanField(
|
||||||
source='material_out.is_hidden', read_only=True)
|
source='material_out.is_hidden', read_only=True)
|
||||||
material_out_tracking = serializers.IntegerField(source='material_out.tracking', required=False)
|
material_out_tracking = serializers.IntegerField(write_only=True, required=False, allow_null=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Route
|
model = Route
|
||||||
|
@ -232,6 +232,7 @@ class RouteSerializer(CustomModelSerializer):
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
process = validated_data['process']
|
process = validated_data['process']
|
||||||
routepack = validated_data.get('routepack', None)
|
routepack = validated_data.get('routepack', None)
|
||||||
|
material_out_tracking = validated_data.pop("material_out_tracking", Material.MA_TRACKING_BATCH)
|
||||||
if routepack:
|
if routepack:
|
||||||
pass
|
pass
|
||||||
# if Route.objects.filter(routepack=routepack, process=process).exists():
|
# if Route.objects.filter(routepack=routepack, process=process).exists():
|
||||||
|
@ -247,6 +248,8 @@ class RouteSerializer(CustomModelSerializer):
|
||||||
if material_out:
|
if material_out:
|
||||||
if material_out.process is None:
|
if material_out.process is None:
|
||||||
material_out.process = process
|
material_out.process = process
|
||||||
|
if material_out_tracking != material_out.tracking:
|
||||||
|
raise ParseError("物料跟踪类型不一致!请前往物料处修改")
|
||||||
if instance.material:
|
if instance.material:
|
||||||
material_out.parent = instance.material
|
material_out.parent = instance.material
|
||||||
material_out.save()
|
material_out.save()
|
||||||
|
@ -254,12 +257,13 @@ class RouteSerializer(CustomModelSerializer):
|
||||||
# raise ParseError('物料工序错误!请重新选择')
|
# raise ParseError('物料工序错误!请重新选择')
|
||||||
else:
|
else:
|
||||||
if instance.material:
|
if instance.material:
|
||||||
self.gen_material_out(instance, validated_data.get("material_out_tracking", Material.MA_TRACKING_BATCH))
|
self.gen_material_out(instance, material_out_tracking)
|
||||||
return instance
|
return instance
|
||||||
|
|
||||||
def update(self, instance, validated_data):
|
def update(self, instance, validated_data):
|
||||||
validated_data.pop('material', None)
|
validated_data.pop('material', None)
|
||||||
process = validated_data.pop('process', None)
|
process = validated_data.pop('process', None)
|
||||||
|
material_out_tracking = validated_data.pop("material_out_tracking", Material.MA_TRACKING_BATCH)
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
instance = super().update(instance, validated_data)
|
instance = super().update(instance, validated_data)
|
||||||
material_out = instance.material_out
|
material_out = instance.material_out
|
||||||
|
@ -273,10 +277,17 @@ class RouteSerializer(CustomModelSerializer):
|
||||||
# raise ParseError('物料工序错误!请重新选择')
|
# raise ParseError('物料工序错误!请重新选择')
|
||||||
else:
|
else:
|
||||||
if instance.material:
|
if instance.material:
|
||||||
self.gen_material_out(instance, validated_data.get("material_out_tracking", Material.MA_TRACKING_BATCH))
|
self.gen_material_out(instance, material_out_tracking)
|
||||||
return instance
|
return instance
|
||||||
|
|
||||||
|
def to_representation(self, instance):
|
||||||
|
res = super().to_representation(instance)
|
||||||
|
if instance.material_out:
|
||||||
|
res['material_out_tracking'] = instance.material_out.tracking
|
||||||
|
else:
|
||||||
|
res['material_out_tracking'] = None
|
||||||
|
return res
|
||||||
|
|
||||||
class SruleSerializer(CustomModelSerializer):
|
class SruleSerializer(CustomModelSerializer):
|
||||||
belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True)
|
belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True)
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|
Loading…
Reference in New Issue