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)
|
||||
material_out_is_hidden = serializers.BooleanField(
|
||||
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:
|
||||
model = Route
|
||||
|
@ -232,6 +232,7 @@ class RouteSerializer(CustomModelSerializer):
|
|||
def create(self, validated_data):
|
||||
process = validated_data['process']
|
||||
routepack = validated_data.get('routepack', None)
|
||||
material_out_tracking = validated_data.pop("material_out_tracking", Material.MA_TRACKING_BATCH)
|
||||
if routepack:
|
||||
pass
|
||||
# if Route.objects.filter(routepack=routepack, process=process).exists():
|
||||
|
@ -247,6 +248,8 @@ class RouteSerializer(CustomModelSerializer):
|
|||
if material_out:
|
||||
if material_out.process is None:
|
||||
material_out.process = process
|
||||
if material_out_tracking != material_out.tracking:
|
||||
raise ParseError("物料跟踪类型不一致!请前往物料处修改")
|
||||
if instance.material:
|
||||
material_out.parent = instance.material
|
||||
material_out.save()
|
||||
|
@ -254,12 +257,13 @@ class RouteSerializer(CustomModelSerializer):
|
|||
# raise ParseError('物料工序错误!请重新选择')
|
||||
else:
|
||||
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
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
validated_data.pop('material', None)
|
||||
process = validated_data.pop('process', None)
|
||||
material_out_tracking = validated_data.pop("material_out_tracking", Material.MA_TRACKING_BATCH)
|
||||
with transaction.atomic():
|
||||
instance = super().update(instance, validated_data)
|
||||
material_out = instance.material_out
|
||||
|
@ -273,10 +277,17 @@ class RouteSerializer(CustomModelSerializer):
|
|||
# raise ParseError('物料工序错误!请重新选择')
|
||||
else:
|
||||
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
|
||||
|
||||
|
||||
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):
|
||||
belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True)
|
||||
class Meta:
|
||||
|
|
Loading…
Reference in New Issue